我有这个方法,我想在列表中给我数据库中的所有用户名。
我知道fetch()应该在某种形式的内部。但我不知道如何在一个对象内循环,因为我尝试了一段时间而且我有这个错误,说它不能被视为数组或字符串(即:可捕获的致命错误: PDOStatement类的对象无法转换为字符串)。
那么,我如何在结果集中进行循环?
下面的代码是我的最后一次尝试,它只显示第一个结果(当然,因为它应该在某种循环中)。我在这里研究了其他一些问题,但由于我只是从对象开始,它们太复杂了,我无法理解这个概念。
function getUsuarios() {
$usuariosRaw = $this->pdo->query('SELECT nombre FROM usuarios');
$listadoUsuarios = $usuariosRaw->fetch();
echo 'Listado de Reservas:<br>';
echo $listadoUsuarios['nombre'].'<br>';
}
答案 0 :(得分:1)
function getUsuarios() {
$usuariosRaw = $this->pdo->query('SELECT nombre FROM usuarios');
$listadoUsuarios = $usuariosRaw->fetchAll();
echo 'Listado de Reservas:<br>';
foreach( $listadoUsuarios as $row )
{
echo $row['nombre'].'<br>';
}
}
不工作?
答案 1 :(得分:0)
与pdo的连接:
function connect() {
try {
$dbh = new PDO('mysql:dbname=test;host=localhost','root', 'root');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $ex) {
echo $ex->getMessage();
}
return $dbh;
}
获取用户的功能:
function getUser(\PDO $dbh){
$sql = 'SELECT name FROM users';
$stmt = $dbh->query($sql);
$result = $stmt->fetchAll(5); // PDO::FETCH_OBJ
return $result;
}
循环获得结果:
<?php
require_once 'db.php';
$dbh = connect();
$users = getUser($dbh);
?>
<?php foreach($users as $user):?>
<p><?= $user->name; ?></p>
<?php endforeach; ?>
希望能帮到你