PDO查询显示无结果

时间:2016-08-15 20:53:32

标签: php mysql pdo

所以以前我的查询工作正常。我通常使用mysql,但最近通过godaddy更改为预先配置的vps。昨晚我试图通过PDO连接到我的服务器,这显示正在建立连接。

接下来,我尝试使用以下方法从表中选择数据:

global $conn;
$sql = "SELECT name FROM suppliers";
$stm = $conn->prepare($sql);
$stm->execute();
return $stm->fetch();

我的网站上显示的所有内容都是Connection Successful,Array

它不显示任何数组信息或任何内容,只显示单词“Array”。该表中包含信息,因此应显示结果。我知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

你得到Array,因为你正在回应一个数组。 Fetch返回一个数组,

  

PDO :: FETCH_BOTH(默认值):返回由结果集中返回的列名和0索引列号索引的数组

由于您正在查询完整的表,因此您可能需要所有结果,因此您应该循环fetch并返回该数组。

$sql = "SELECT name FROM suppliers";
$stm = $conn->prepare($sql);
$stm->execute();
while($row = $stm->fetch()) {
    $returned_array[] = $row['name'];
}
return $returned_array;

然后对所有供应商名称使用它进行迭代。

foreach(function_call_for_names() as $name) {
     echo $name;
} 

或者,您可以使用PDO fetchAll功能

$sql = "SELECT name FROM suppliers";
$stm = $conn->prepare($sql);
$stm->execute();
return $stm->fetchAll();

然后

foreach(function_call_for_names() as $row) {
         echo $row['name'];
}