1

私は mysql テーブルの列で、それに送信された文字列を検索する必要がある php ページを持っています。コードは次のとおりです。

$search=$_POST['search'];
$search_result= mysql_query('SELECT * FROM my table WHERE title LIKE '.$search.'%');

接続は問題ありませんが、常に false が返されます。

4

2 に答える 2

3

クエリが正しくありません。次のようになります。

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 タグの手下の通常の歌と踊りです。

于 2013-04-18T15:55:33.307 に答える
0

ダブル '%' を使用してみてください:

$search_result= mysql_query("SELECT * FROM my table WHERE title LIKE '%" . $search. "%'");

またLIKE '%criteria%'、実際のクエリはLIKE %criteria%(引用符なし)でなければなりません

于 2013-04-18T15:54:21.777 に答える