2017-07-16 94 views
-1

我正在面对“绑定变量的数量与令牌数量不匹配”异常,同时尝试在使用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_numbercompany_name进行搜索。出于同样的原因,我约束了两个占位符(变量)。代码工作,而我只使用1个变量,但不是两个。如何绑定两个变量?

+0

有查询的额外空间。这个问题应该删除 –

回答

-2

您可以使用

$stmt->bindValue(array(':plateNumber', '%'.$searchParam.'%', PDO::PARAM_INT,':companyName', '%'.$searchParam.'%', PDO::PARAM_INT)); 
相关问题