私は mysql テーブルの列で、それに送信された文字列を検索する必要がある php ページを持っています。コードは次のとおりです。
$search=$_POST['search'];
$search_result= mysql_query('SELECT * FROM my table WHERE title LIKE '.$search.'%');
接続は問題ありませんが、常に false が返されます。
クエリが正しくありません。次のようになります。
SELECT * FROM my table WHERE title LIKE foo%
次のようになります。
SELECT * FROM my table WHERE title LIKE 'foo%'
したがって、行を次のように変更します。
$search_result= mysql_query("SELECT * FROM my table WHERE title LIKE '". $search ."%'");
または単に:
$search_result= mysql_query("SELECT * FROM my table WHERE title LIKE '$search%'");
そして、いつものように、あなたのスクリプトは SQL インジェクションに対して脆弱であり、mysql_*
関数は非推奨であり、代わりに PDO または MySQLi を使用してください。何とか、PHP タグの手下の通常の歌と踊りです。
ダブル '%' を使用してみてください:
$search_result= mysql_query("SELECT * FROM my table WHERE title LIKE '%" . $search. "%'");
またLIKE '%criteria%'
、実際のクエリはLIKE %criteria%
(引用符なし)でなければなりません