我只想直接回答和解释为什么我之前的查询有效,而后者却无效。
这是正常工作的查询:
$sql = "SELECT * FROM productslist WHERE brand LIKE ?";
这根本不起作用,只是返回一个错误:
$sql = 'SELECT * FROM productslist WHERE brand LIKE "%'.$search_string.'%"';
有人可以解释一下为什么后面的查询根本不起作用吗?
先谢谢了。
答案 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);