【发布时间】:2014-06-27 07:32:08
【问题描述】:
我正在尝试绑定一个参数,以便我可以基于WHERE 子句查询数据库,该子句检查存储在SESSION 中的用户用户名。用户名肯定存储在会话中,因为当我 var_dump($_SESSION) 时我可以看到它,所以我知道这是问题的原因。
我没有得到返回的 id,而是得到了异常。例如,当我将:user 更改为'Maverick' 时(显然是来自数据库的有效用户名),它将返回ID。有什么想法吗?
$username = $_SESSION['username'];
try {
$result = $db->query("SELECT id FROM user_info WHERE username = :user");
$result->bindParam(':user', $username);
$result->execute();
$user_info = $result->fetchAll(PDO::FETCH_ASSOC);
}
catch (Exception $e) {
echo "Could not retrieve user's ID";
exit;
}
不确定它有多相关,但是当我实际上将 :user 替换为 Maverick 然后执行 echo $user_info 时,它不会返回任何内容,但是当我执行 var_dump($user_info); 时,它会显示以下内容; array(1) { [0]=> array(1) { ["id"]=> string(2) "59" } }
我想我的问题在技术上是一个两部分的问题。非常感谢您的帮助。
【问题讨论】:
-
在你的catch块中,输入
echo $e->getMessage();看看错误是什么。 -
谢谢,这真的很有用!为了测试getMessage,我将prepare 改回来,它告诉我错误是什么,正如您所期望的那样。很棒的小工具包。