PDO like子句不起作用

时间:2017-07-11 13:02:07

标签: php sql pdo

我试图从我的搜索栏中获取数据库中的一些数据,但我只是不断获取pdo异常错误 这是代码

<?php 

$sh=$_GET['search'];
$s_query="SELECT * FROM tb_name WHERE headline LIKE ?";
$stmt=$dbconnect->prepare ($query);
$stmt->execute(["%$sh%"]);
$fh=$stmt->fetchALL();
var_export($fh);
?>

这是输出的错误:

  

PDOException:SQLSTATE [4200]:语法错误或访问冲突:1064 SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便使用“* WHERE标题LIKE”附近使用的正确语法?&#39;

1 个答案:

答案 0 :(得分:1)

你必须像这样绑定params:

<?php 

$sh=$_GET['search'];
$s_query="SELECT * FROM tb_name WHERE headline LIKE ?";
$stmt=$dbconnect->prepare ($query);
$stmt->bind_param("s", "%".$sh."%");
$stmt->execute();
$fh=$stmt->fetchALL();
var_export($fh);
?>

&#34; s&#34; in bind_param中的var类型。例如,这里是一个字符串。