回答編集履歴
1
コードの直し
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
$st_cnt->bindValue('pid', $pid, PDO::PARAM_STR);
|
27
27
|
$st_cnt->execute();
|
28
28
|
$reault_cnt = $st_cnt->fetchAll();
|
29
|
-
if ($reault_cnt[0]['
|
29
|
+
if ($reault_cnt[0]['CNT'] == 0) { // ASで指定した別名を与える
|
30
30
|
// 登録されていないから、INSERT文を実行
|
31
31
|
$st_ins = $dbh->prepare('INSERT INTO products(pid, name, const, price) VALUES (:pid, :name, :cost, :price)');
|
32
32
|
$st_ins->bindValue('pid', $pid, PDO::PARAM_STR);
|
@@ -47,3 +47,10 @@
|
|
47
47
|
```
|
48
48
|
|
49
49
|
みたいな?(あくまで机上のコードなので参考程度で。トランザクション処理も足りてないし。)
|
50
|
+
|
51
|
+
fetch()やfetchAll()の第一引数がモードで、
|
52
|
+
通常 PDO::FETCH_BOTH がデフォルトで省略可能なんだけど、
|
53
|
+
|
54
|
+
> 結果セットに返された際のカラム名と 0 で始まるカラム番号で添字を付けた配列を返します。
|
55
|
+
|
56
|
+
ってことなので、ASで与えた別名でなくても、0でもアクセスできるかもだ。
|