【发布时间】:2016-02-16 15:55:27
【问题描述】:
我正在尝试使用 PDO 为我的网站创建搜索功能。目前,我通过 URL 发送搜索查询,然后尝试获取结果,但是每当我执行 var 转储时,它都会返回 null。我在我的管理员 PHP 上测试了查询,它返回了大约 4 个结果。
我使用我创建的一个类连接到数据库,这适用于我的所有其他查询。
这是我的搜索功能
function search($query) {
$sql = "SELECT * FROM `Sweets` WHERE `Description` LIKE :search";
$stmt = $this->connection->prepare($sql);
$stmt->bindParam(':search', $query);
$stmt->execute();
$done = $stmt->fetch();
var_dump($done[0]);
}
以下是我的表单作为操作调用的搜索 php
<?php
// Start our connecting to our database
require('class-database-functions.php');
$database = new Database_Functions();
// Get the search value passed through $_GET
$search_query = $_GET['query'];
$search = $database->search($search_query);
?>
【问题讨论】:
-
试试 $done = $stmt->fetchAll();
-
您是否检查过您的函数中的
$query是否正确? -
不要假设查询成功!检查是否有任何错误。将 PDO 设置为异常 errmode,然后使用异常
try { ... } catch(PDOException $e) { ... }。 -
@CharlotteDunois you should never catch errors to report them.。必须设置正确的 PHP 错误报告。
-
$query是您所期望的吗?在运行查询时尝试打开 mysql 日志记录,以验证发送的查询是否符合您的预期。