3 回答
TA贡献1780条经验 获得超1个赞
我想打印我找到的每个客户名称、子名称和电子邮件
然后你应该使用 fetchall() 这将获取所有结果作为一个数组然后遍历数组并打印数组的每个元素
function clientes($conexion) {
$stmt = $conexion ->query("SELECT name,subname,email FROM CLIENTE")->fetchall();
foreach($stmt as $row){
echo "Client Name : ".$row['name']."<br>";
echo "Client subname : ".$row['subname']."<br>";
echo "Client email : ".$row['email']."<br>";
}
}
clientes($conexion);
?>
TA贡献1757条经验 获得超7个赞
你只得到一列,因为你明确只要求一列(通过使用fetchColumn()),而且你只告诉 SQL 返回一列。
更改您的查询:
// Replace column1 etc to the real column names
SELECT column1, column2, column3 FROM CLIENTE
然后不是使用fetchColumn()(用于获取一列),而是使用:
return $stmt->fetchAll(PDO::FETCH_ASSOC);
并且您应该得到一个包含所有三列的关联数组(每行一个)的数组。
但是,您还有另一个问题:
echo clientes($conexion);
由于您现在正在返回一个数组,因此您不能直接回显它。如果这样做,您将收到有关“数组到字符串转换”的警告。您需要遍历数组并根据需要输出数据:
$data = clientes($conexion);
// Again, change the column names
foreach ($data as $row) {
echo $row['column1'];
echo $row['column2'];
echo $row['column3'];
}
这将输出所有数据。不过,您可以决定布局。
- 3 回答
- 0 关注
- 199 浏览
添加回答
举报