php - 使用 MySQL 表字段填充 HTML 表的准备语句结果

标签 php html mysql mysqli prepared-statement

我正在尝试使用这样的用户信息填充 HTML 表格:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect($host, $username, $password, $db);
$query = "SELECT * from `users`";
$stmt = $mysqli->prepare($query);
$stmt->execute();
$res = $stmt->get_result();
$data = $res->fetch_all();

foreach ($data as $row) 
{
    echo "<tr><td>" . $row['username'] . "</td><td>" . $row['email'] . "</td></tr>";
}

然而,数组索引似乎为空,因为它会导致空白 HTML 表行的数量等于 MySQL 表中的用户数。

如果我像这样将_param绑定(bind)到$stmt:

$query = "SELECT * from `users` WHERE userId = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("i", $userId);
$stmt->execute();
$res = $stmt->get_result();
$data = $res->fetch_all();

HTML 表中根本没有创建任何行,这让我相信数组是空的。

我已经使用此答案中的信息到目前为止:

SELECT * from SQL table using prepared statement

我想我的问题出在prepare() 参数$query 中。但我似乎无法确切地弄清楚它是什么。

最佳答案

改变

$data = $res->fetch_all();

$data = $res->fetch_all(MYSQLI_ASSOC);

这样您将获得关联结果(例如 $row['username'] 可以使用)而不是序数结果(例如 $row[1])。

关于php - 使用 MySQL 表字段填充 HTML 表的准备语句结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289513/

相关文章:

jquery - 使用 Express、Node 和 JQuery 提交表单

mysql - 如果没有可用内容,则不显示菜单项

javascript - 带有年号的选择框中的 php 周数

javascript - 遍历每个元素并只获取直接在节点中的内容

php - 在模态中插入查询

c# - 显示 Html 字符串

php - 在 mysql 中使用 join 更新表

html - CSS3无限循环回到第一张图片

mysql - 在外键表中使用主键作为外键

java - 使用 JPA 针对桥接表设置一对多连接