洗面器に顔を突っ込んで、最初に顔を上げた奴が負ける

Webエンジニア 2018 12-15から毎週学習の記録 

ルーキーバックエンドエンジニアの学習記録(3週目)No.3 PDO prepare LIKE (部分検索)

f:id:masa_tech:20181230224337p:plain

現在、新卒入社して8ヶ月のルーキーバックエンドエンジニアの学習記録です。 日頃業務で学んだことだったり、プライベートの開発でハマった事だったり、 読んだ技術書や、ビジネス書の要約、所感だったりを書き連ねていきたいと思います。

目次

学んだこと

PDO prepareでLIKE(部分一致)検索するときのbindValueのパラメータ

PDOのprepare時にLIKE(部分一致)にて、うまくいかずハマったので記録

$query = "SELECT * FROM table where title like % :title %";

$stmt  = $pdo->prepare($query);
$stmt->bindValue(":title", $title, PDO::PARAM_STR);
// sqlの実行
$stmt->execute();


上記のような記述では正常に動作せず、LIKEの検索ができない

『%』で括るのはsql内ではなくbindValue内が正しいらしい。

正しくは、

$query = "SELECT * FROM table where title like :title ";

$stmt  = $pdo->prepare($query);
$stmt->bindValue(":title", '%'. $title .'%', PDO::PARAM_STR);
// sqlの実行
$stmt->execute();




感想

微妙なところで変わってくるんですねー。短いけどこんなもんでw
年末年始は一応今の所一日一冊ペースで本読めてるのでアウトプットもしっかりやりたいな