首页 > 解决方案 > 对使用 PHP 打印关联数组的结果感到困惑

问题描述

我正在尝试使用foreach从关联数组中打印 SQL 查询的结果。我正在尝试不同的事情,一个工作,而另一个给出错误。

我特别问为什么这部分会$row[first_name]给出不同的结果。

此代码有效:

<?php
 include 'connect_db.php';
 $stmt = $conn->query("SELECT people.first_name, people.last_name FROM people");
 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

 foreach ($results as $row) {
    echo "<form action='/test.php' method='post'>
   <input type='text' name='first_name' value=$row[first_name]>
  <input type='submit' value='Click'> <br>
 </form>"; 
 }  
?>

但是下面的代码给出了一个错误提示: Notice: Use of undefined constant first_name - assumed 'first_name'

<?php
 include 'connect_db.php';
 $stmt = $conn->query("SELECT people.first_name, people.last_name FROM people");
 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

 foreach ($results as $row) {
 echo $row[first_name]; 
 }  
?>

我显然$row[first_name]在第二个例子中使用不正确,但我不知道怎么做。

标签: phparrayssyntax-errorassociative-array

解决方案


从 MySQL 返回的关联数组中的键是字符串 - 您需要引用它们:

echo $row['first_name'];
# Here ---^----------^

推荐阅读