匿名質問者

プリペアードステートメントについての質問です

今ドットインストールでphpを学習しています
http://dotinstall.com/lessons/todo_app_php_v2/9314


foreach ($task as $key => $val) {
$sql = "update tasks set seq = :seq where id = :id";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(
":seq" => $key,
":id" => $val
));
}

この文のところでseqやidの前に「:」が使われています
よく使われるワイルドカードの「?」とはどのように違うのでしょうか?

初歩的な質問で申し訳無いですがお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/02 00:05:04

回答1件)

匿名回答1号 No.1

(a)?はワイルドカードではなく疑問符プレースホルダと呼びます。
疑問符プレースホルダを使った場合は、SQLの文頭から順に通し番号で取り扱う形になります。

(b):は名前付きプレースホルダと呼びます。
名前付きプレースホルダを使った場合は、視認性がよくなり、順序も気にしなくて良くなります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません