ルーキーバックエンドエンジニアの学習記録(3週目)No.3 PDO prepare LIKE (部分検索)
現在、新卒入社して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
年末年始は一応今の所一日一冊ペースで本読めてるのでアウトプットもしっかりやりたいな