假设$search是来自用户输入的字符串,并且$db是有效的PDO引用.
根据我的理解,以下块是首选,应该工作:
$imageStatement = $db->prepare("SELECT
images.whatever
FROM images
WHERE images.title LIKE :titleSearch OR images.description LIKE :descriptionSearch");
$imageStatement->bindValue(':titleSearch', "%{$search}%");
$imageStatement->bindValue(':descriptionSearch', "%{$search}%");
$images = $imageStatement->fetchAll();
Run Code Online (Sandbox Code Playgroud)
它返回0结果,而以下返回预期回报:
$search = $db->quote("%{$search}%");
$images = $db->query("SELECT
images.whatever
FROM images
WHERE images.title LIKE {$search} OR images.description LIKE {$search}")->fetchAll();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
您从未执行过您的PDO声明.绑定参数后,请execute在检索结果之前调用.
$imageStatement->bindValue(':titleSearch', "%{$search}%");
$imageStatement->bindValue(':descriptionSearch', "%{$search}%");
$imageStatement->execute(); //ADD THIS STATEMENT
$images = $imageStatement->fetchAll();
Run Code Online (Sandbox Code Playgroud)
PDO的query功能不需要您调用execute,因为它不是参数化查询.
| 归档时间: |
|
| 查看次数: |
1521 次 |
| 最近记录: |