teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

順番待ち替えが原因と確定したので追記

2018/01/27 11:24

投稿

退会済みユーザー
answer CHANGED
@@ -26,4 +26,23 @@
26
26
  kind, $stmt->bindValue(23, $kind, PDO::PARAM_STR);
27
27
  ```
28
28
 
29
- 比較した
29
+ 比較した
30
+
31
+
32
+ # 順番待ち替え対策
33
+ ```
34
+ <?php
35
+ /* バインドされた PHP 変数によってプリペアドステートメントを実行する */
36
+ $calories = 150;
37
+ $colour = 'red';
38
+ $sth = $dbh->prepare('
39
+ SELECT name, colour, calories
40
+ FROM fruit
41
+ WHERE calories < :calories AND colour = :colour');
42
+ $sth->bindValue(':calories', $calories, PDO::PARAM_INT);
43
+ $sth->bindValue(':colour', $colour, PDO::PARAM_STR);
44
+ $sth->execute();
45
+ ```
46
+ のように namebind を利用しましょう
47
+
48
+ `?` の代わりに `:bindname` のように `:` と `項目名` を結合して bindValue の第一引数に `:bindname` を設定しましょう。