For Want Of A Better Word

【PHP】【DB開発メモ】PDO_LIKEが動かん!プレースホルダの誤用

      2015/04/18

前もはまった気がする….
成長しない。

PHP: プリペアドステートメントおよびストアドプロシージャ – Manual

例6 プレースホルダの間違った使用法

prepare(“SELECT * FROM REGISTRY where name LIKE ‘%?%'”);
$stmt->execute(array($_GET[‘name’]));

// プレースホルダは、値全体に対して使用しなければなりません
$stmt = $dbh->prepare(“SELECT * FROM REGISTRY where name LIKE ?”);
$stmt->execute(array(“%$_GET[name]%”));
?>

前者が誤用。
後者が正。

渡す値の方を%%で囲まないといけない。
渡す値の方を%%で囲まないといけない!!

 - mysql, php

  関連記事

php-logo
【なぜ!】php_mecabでユーザー辞書って有効にならない?

シェルでコマンドラインからは、ユーザー辞書で登録した内容が抽出されるけど、WEB …

mysql-logo
php5.1 apache2 連携用のdllファイル(php5apache2_2.dll)の取得

windowsでphp5.1をapache2で動かしたかったり、その逆の時とか、 …

php-logo
【php】compact()の使い方

いまいちピンとこなかったcompact()。 やっと分かったのでメモ。 ①変数か …

php-logo
勉強サイト

だいぶよさそう。 http://www.phppro.jp/

mysql-logo
[mysql]どういうSQL文のとき、どういうインデックスが使われるのか整理

mysqlのチューニングをしていて、どうしてもインデックスが、どの指定の時に何が …