回答編集履歴

1

コードの直し

2022/08/01 03:00

投稿

退会済みユーザー
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]['pid'] == 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でもアクセスできるかもだ。