绑定变量的数量与令牌的数量不匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绑定变量的数量与令牌的数量不匹配相关的知识,希望对你有一定的参考价值。
尝试在使用PDO的where子句中使用多个条件时,我面临“绑定变量的数量与令牌数量不匹配”异常。
码:
$servername = "localhost";
$username = "xxxx";
$password = "xxxxx";
$dbname = "yyyy";
$searchParam = $_POST['typeahead'];
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM trucks WHERE plate_number LIKE :plateNumber OR company_name LIKE: companyName");
$stmt->bindValue(':plateNumber', '%'.$searchParam.'%', PDO::PARAM_INT);
$stmt->bindValue(':companyName', '%'.$searchParam.'%', PDO::PARAM_INT);
我试图搜索取决于plate_number
或company_name
。出于同样的原因,我绑定了两个占位符(变量)。代码工作,而我只使用1个变量而不是2个。如何绑定两个变量?
答案
您可以使用
$stmt->bindValue(array(':plateNumber', '%'.$searchParam.'%', PDO::PARAM_INT,':companyName', '%'.$searchParam.'%', PDO::PARAM_INT));
以上是关于绑定变量的数量与令牌的数量不匹配的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义 PDO 函数时,绑定变量的数量与标记的数量不匹配
mysqli_stmt::bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配
SQL 错误 PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: 绑定变量的数量与中的标记数量不匹配