我试图从我的数据库中选择一个简单的数据:
$stmt = $dbh->prepare("SELECT new_email FROM pending_emails WHERE userid=:userid AND type='email'");
$stmt->bindParam(":userid",$userdata["id"]);
$stmt->execute();
$emailUpdateData = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($emailUpdateData) == 1){
$emailUpdate = true;
}
然后我尝试像这样使用 $emailUpdateData
:
echo $emailUpdateData["new_email"];
但这不会返回任何内容。
如果我执行print_r
,我会得到:
Array ( [0] => Array ( [new_email] => support@hotmail.com ) )
最佳答案
fetchall 始终返回行数组作为记录集。想象一下,您的选择返回一个值列表,您将需要一个数组来存储所有这些值,并在每个值中包含它们的键->值。
因此,fetchall 将始终返回一个数组,即使结果集只有一个结果或者您在 SQL 语句中使用 LIMIT 子句限制它。
在这种情况下,您需要访问该数组:
$emailUpdateData[0]["new_email"]
如果只想获取第一行,请将 fetchAll 替换为 fetch
关于PHP PDO - Fetchall 不打印出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617004/