使用php和mysql搜索查询的问题

时间:2018-09-13 10:02:23

标签: php mysql

我只想直接回答和解释为什么我之前的查询有效,而后者却无效。

这是正常工作的查询:

$sql = "SELECT * FROM productslist WHERE brand LIKE ?";

这根本不起作用,只是返回一个错误:

$sql = 'SELECT * FROM productslist WHERE brand LIKE "%'.$search_string.'%"';

有人可以解释一下为什么后面的查询根本不起作用吗?

先谢谢了。

2 个答案:

答案 0 :(得分:0)

我使用自己的数据库上的表测试了查询。工作正常...我使用了常量

尝试mysqli_real_escape_string:

$search_string = mysqli_real_escape_string($conn, $search_string);
    $sql = 'SELECT * FROM productslist WHERE brand LIKE "%'. $search_string  .'%"';

答案 1 :(得分:-1)

尝试使用PDO(编辑:包括PDO连接字符串,因为他未指定是否使用PDO)-

$dbh = new PDO("mysql:hostname=$your_server;dbname=$database_name, $username, $password);

$sql = "SELECT * FROM productslist WHERE brand LIKE :search";
$query = $dbh->prepare($sql);
$query->bindValue(":search", "%$search_string%");
$query->execute();

$result = $query->fetchAll(PDO::FETCH_ASSOC);