我有一个 php 页面,它应该在 mysql 表的列中搜索发送给它的字符串。代码是:
$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%
(无引号)