1

我有一个 php 页面,它应该在 mysql 表的列中搜索发送给它的字符串。代码是:

$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 回答