Php mysql PDO带有SELECT OR,错误!:SQLSTATE[HY093]
我有一个简单的搜索表单,它向我的php文件发送一个post请求,其中包含如下输入Php mysql PDO带有SELECT OR,错误!:SQLSTATE[HY093],php,mysql,pdo,Php,Mysql,Pdo,我有一个简单的搜索表单,它向我的php文件发送一个post请求,其中包含如下输入“searchword=test1”。然后,我将其与PDO一起用于搜索表中的匹配数据 到目前为止,我只搜索了一列,使用以下语句: $query=$db->prepare(“从标题为:seachword的文章中选择*); 但现在我想搜索trought 3列(名为title、extract和body) $query=$db->prepare(“从标题类似:seachword或摘录类似:searchword或正文类似:se
“searchword=test1”
。然后,我将其与PDO一起用于搜索表中的匹配数据
到目前为止,我只搜索了一列,使用以下语句:
$query=$db->prepare(“从标题为:seachword的文章中选择*);
但现在我想搜索trought 3列(名为title、extract和body)
$query=$db->prepare(“从标题类似:seachword或摘录类似:searchword或正文类似:searchword的文章中选择*);
现在我得到一个错误,说“错误!”SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配“ 如果我使用bash运行SQL语句(
SELECT*FROM title(如“%test%”或body(如“%elem%”);
),查询结果返回良好
知道我错过了什么吗
这是我的密码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
try {
$hostname = "localhost";
$username = "root";
$password = "";
$db = new PDO("mysql:host=$hostname;dbname=topdecka_PTC",$username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (!empty($_POST["searchword"])) {
$searchword = $_POST["searchword"];
$query = $db->prepare("SELECT * FROM articles WHERE title LIKE :seachword OR extract LIKE :searchword OR body LIKE :searchword");
$query->execute(array(":seachword" => "%" . $searchword . "%"));
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
else {
$query = $db->prepare('SELECT * FROM articles');
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
} catch (PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
你有一个打字错误:2x:seachword
和2x:search word
你有一个打字错误:2x:seachword
和2x:search word你有一个打字错误:2x:seachword
和2x:search word
你有一个打字错误:2x:seachword
和2x:search word回显查询显示了什么…我认为有问题…你的查询字符串对我来说看起来疯狂请回显查询显示了什么…我认为有问题…你的查询字符串对我来说疯狂请回显查询显示了什么…我认为有问题…你的查询字符串对我来说疯狂请回显查询显示了什么show…我想这是问题所在..你的查询字符串在我看来很疯狂