0

此代码打印出列名列表。但我希望它能够为具有JSmithUserName的用户打印出存储在表中的信息。LoginName

 $loginname = "JSmith";
 $stmt = $dbh->prepare("SELECT * FROM UserName WHERE LoginName=:login_name");
 $stmt->bindValue(":login_name", $login_name, PDO::PARAM_STR);
 $stmt->execute();

echo "<table><tr>";
$result = $stmt->fetch(PDO::FETCH_ASSOC);
 print_r($result);
foreach ($result as $key => $val){
    echo "<th>" . $key . "</th>";   
}
echo "</tr>";
echo "</table>";

为什么这不返回带有用户名的行?看着echo gettype($result)告诉我它们是字符串和整数;不像每个返回的数组本身就是一个数组。我敢肯定这是一件简单的事情,但任何帮助表示赞赏。谢谢!

4

1 回答 1

1

您正在打印键,而不是值。键是列名,值是对应的列值。

print_r($result)显示$stmt->fetch()返回一个包含您期望的信息的数组,而相应的 HTML 根本没有反映这一点。

http://php.net/manual/en/pdostatement.fetch.php#example-1018

让我们修复它。

$result = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($result);
foreach ($result as $key => $val){
    echo "<th>" . $key . "</th>";
    echo "<td>" . $val . "</td>";
}
echo "</tr>";
echo "</table>";
于 2013-02-05T03:49:33.527 回答