したい事
・複数のカラムを検索
・sqlのインジェクション対策
調べると$_POST['keyword']を直接渡すのはダメなので、bindParamを通して実行するとの事だったのですが複数のカラムを下記のようなLIKE検索するとダメでした。
詳しい方いましたらよろしくお願いします。
補足:$query = "SELECT * FROM sample_tb WHERE sample_nm LIKE '%".$_POST['keyword']."%' OR sample_body LIKE '%".$_POST['keyword']."%'ORDER by id DESC";
だと欲しい情報が取得できました。もちろんダメなのは承知しています。
カラムのsample_nmとsample_bodyに「東京」というワードが入っているレコードを取得したいです。
PHP
1 2$query = "SELECT * FROM sample_tb WHERE sample_nm LIKE :keyword OR sample_body LIKE :keyword ORDER by id DESC"; 3 4// prepare準備 5$stmt = $pdo->prepare($query); 6 7// sqlインジェクション対策 8$stmt->bindParam(':keyword', $_POST['keyword'], PDO::PARAM_STR); 9 10// excute実行 11$stmt->execute(); 12 13// 全行取得 14$rows = $stmt->fetchAll(); 15
回答3件
あなたの回答
tips
プレビュー