Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环结果PDO PHP_Php_Mysql_Pdo - Fatal编程技术网

循环结果PDO PHP

循环结果PDO PHP,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试从我的站点上的表中获取所有记录,我有以下内容 $sth = $conn->prepare("SELECT * FROM directory WHERE user_active != ''"); $sth->execute(); /* Exercise PDOStatement::fetch styles */ $result = $sth->fetch(PDO::FETCH_ASSOC); foreach ($sth->fetchAll(PDO::FETCH_

我正在尝试从我的站点上的表中获取所有记录,我有以下内容

$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != ''");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
$result = $sth->fetch(PDO::FETCH_ASSOC);
foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $result) {
    echo $result[First_Name];
}

只是它没有返回所有的记录,只是我的第一个记录,有人能看出我错在哪里吗

您需要使用循环:

while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
    echo $result[First_Name];
    echo ' ' . $result[Surname];
}
或者您可以使用以下方法:

注意:如果
名字
姓氏
不是常量,则应使用字符串作为键名


$result['First_Name']
$result['names']

好吧,你只需要调用
$sth->fetch
一次。你需要对结果进行循环

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
   echo $row['First_Name'] . ' ' . $row['Surname'] . "\n";
}
也不要调用没有大括号的数组字符串索引。这样,PHP检查键是否为常量,然后将其强制转换为字符串。这只是一种不好的做法,可能会导致意外的行为


如果只返回一行,则数据库(或结果集)中可能只有一行。给我们看更多的代码

检查first(姓名和姓氏)的大小写也可能会出现问题只需使用
fetchAll
而不是
fetch
。出于某种原因,这只会从my table@xdazzMay返回1条记录您可能只有1条记录?或者您使用的第一段代码只有fetch(PDO::fetch_ASSOC)而不是fetchAll(PDO::fetch_ASSOC).这也只是返回1个recor@vaseliq?
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
   echo $row['First_Name'] . ' ' . $row['Surname'] . "\n";
}