【发布时间】:2015-04-24 16:39:14
【问题描述】:
嘿,我在我的 PDO 函数中有这个,我想用相同的输入($string)检查我的数据库的 2 列。这来自我的 HTML 搜索框。我想要一个数组中的结果。但是,使用此代码,它只检查 genre 列而不是 name 列。但它应该检查两列。有什么帮助吗?谢谢。
public function search($string){
$question = '%' . $string . '%';
$sql = "SELECT * FROM `products` WHERE `name` OR `genre` LIKE :q";
$stmt = $this->pdo->prepare($sql);
$stmt->bindValue(':q', $question);
$stmt->execute();
$data = '%$data%';
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
使用此查询时出现此错误:
$sql = "SELECT * FROM `products` WHERE `name` like :q OR `genre` LIKE :q";
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[HY093]: 参数号无效' in /Applications/MAMP/htdocs/bad/bad/dao/ProductsDAO.php:32 堆栈跟踪: #0 /Applications/MAMP/htdocs/bad/bad/dao/ProductsDAO.php(32): PDOStatement->execute() #1 /Applications/MAMP/htdocs/bad/bad/controller/ProductsController.php(24): ProductsDAO->search('pokemon') #2【内部函数】: ProductsController->index() #3 /Applications/MAMP/htdocs/bad/bad/controller/Controller.php(9): call_user_func(Array) #4 /Applications/MAMP/htdocs/bad/bad/index.php(50): 控制器->filter() #5 {main} 在第 32 行的 /Applications/MAMP/htdocs/bad/bad/dao/ProductsDAO.php 中抛出
【问题讨论】:
-
答案已编辑,请检查更改。如果您有任何疑问或错误,请告诉我。