【发布时间】:2015-07-10 18:45:42
【问题描述】:
所以我有一些我只是无法弄清楚的代码。我打开了错误报告,并且我有适当的 try/catch 块,但是下面的代码没有运行。当我运行这段代码时,我得到的只是来自var_dump($result) 的bool(false)。
try
{
$db = new PDO('sqlite:norming_database.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
/*... some other stuff in between ...*/
try
{
$query = "SELECT stimulusName
FROM responses
WHERE workerId LIKE :workerId";
$stmt = $db->prepare($query);
$stmt->bindParam(':workerId', $_GET['testWorkerId']);
$stmt->execute();
$result = $stmt->fetch();
}
catch(PDOException $e)
{
echo "PDO Error: " . $e->getMessage();
}
echo "<pre>" . var_dump($result) . "</pre>";
我没有收到任何异常或错误。最重要的是,如果我在我的数据库管理器 (Valentia Studio) 中运行查询本身,它会返回我期望的结果。
我怀疑我的代码中有一些拼写错误或某些内容,在反复阅读后我没有看到。这是怎么写的有什么明显的错误吗?
【问题讨论】:
-
在您打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部 -
@JayBlanchard 是的,这就是我所拥有的!仍然没有错误或结果!这是我很长一段时间以来遇到的最令人沮丧的编码问题之一,我已经在这个问题上投入了 6 个小时......
-
发布您的确切错误描述。
-
我没有得到任何错误。我运行这个确切的代码,唯一打印出来的是
bool(false)。除此之外,no 错误已经产生;代码只是不起作用。 -
我怀疑是查询。从技术上讲,它读取
SELECT stimulusName FROM responses WHERE workerId LIKE 'your_get_var_here_if_it_exists'- 现在,我对 SQLite 了解不多,但是您在 Valentia Studio 中使用的实际查询是什么?LIKE查询没有使用任何通配符,除非您通过 GET 发送了一些不好的东西?