DBの文字を検索

過去の記事を見たら自分で検索の仕方を投稿してて自分のあほさを痛感しながらまたメモする。

今回はDBの中から検索したい文字を表示するコード

はい、どん。

//検索フォームに値が入ったらbbalistの本文を検索
$sql = 'SELECT * from bbslist where contents like ?';
$stmt = $pdo->prepare($sql);
//%%s%% 解釈後 %検索文字列%
$stmt->execute(array(sprintf('%%%s%%', $search)));
$bbsList = $stmt->fetchAll();

 

使うSQLは SELECT * FROM テーブル名 WHERE カラム名  like ?;

array(sprintf('フォーマットを定義する文字列',差し込む変数 ));

like ?にある?はここだと検索した値や文字を変換?置換してくれるやつみたいです。

 

んでsprintの中にある %%%s%%% これがよくわからない

sは文字列として扱い表現すると書いてますが その前にある %がわからん

公式では 

  • % - パーセント文字。引数は不要です。

とかかれており調べてみると「フォーマットの中には「%」で始まり必須の項目である型指定子を指定します。それ以外の指定しはオプションです。」だそうです。

?????

まあよくわからないけど指定しないといけないぽい