【发布时间】:2012-12-11 16:30:59
【问题描述】:
我尽量不感到沮丧,但我最近了解到mysql_* 在 PHP 中已被弃用。我决定学习如何使用 PDO。
我今天下午刚刚在看它,使用它连接到数据库很容易,但后来我想用它获取一行并将该行保存为由列名索引的数组(同样的方式正如函数mysql_fetch_array 所做的那样)。我想不通以挽救我的生命。
我会发布我的代码来澄清一下,我确信这很简单(所有编程错误总是很简单),但我肯定做错了什么。
// Connect to the database
$host = $_PARAM["DatabaseServer"];
$db = $_PARAM["MainDatabase"];
$dbuser = $_PARAM["DatabaseUser"];
$dbpass = $_PARAM["DatabasePass"];
try
{
$Database = new PDO("mysql:host=$host;dbname=$db", $dbuser, $dbpass);
}
catch (PDOException $e)
{
echo "There was an unexpected error. Please try again, or contact us with concerns";
}
$stmt = $Database->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute(array($sUserCook));
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $row["username"];
【问题讨论】:
-
你能看到这里的语法高亮吗?你收到错误信息了吗?如果没有,您是否启用了 error_reporting?
-
这里的
prepare()行缺少一些引号,但您可能知道。 -
当您没有收到错误消息来帮助您指导时,编程是令人沮丧的。您需要配置 php 以显示错误。
-
你们是对的,那里的错误告诉我我缺少报价,但我在任何地方都找不到。谢谢你为我找到它。我告诉你,最简单的事情总是能吸引你。