PHP PDO - Fetchall 不打印出值

标签 php mysql sql pdo

我试图从我的数据库中选择一个简单的数据:

$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/

相关文章:

javascript - 从 HTML 表中即时获取数据

mysql - 使用 MySQL 将 column_name 移至 Column_name 之后

MySQL 三态属性

sql - 基于函数的索引在 Oracle 12c 中不起作用

sql - 如何从spark-sql中的字符串中删除特定字符

php - 如何使 phpmailer 代码更简单,用于发送 2 封邮件

php - 选择最近 20 分钟内插入的记录

php - 神秘幽灵MySQL插入查询

php - 插入时 CodeIgniter 和 undefined variable

MySQL 更新运行缓慢