【发布时间】:2019-08-02 04:38:05
【问题描述】:
我正在运行一个 select 语句,它将字段“task_name”的多个项目从包含匹配“用户名”字段的记录中返回到上面称为“$user_log”的 PHP 变量。
$sql_task = "SELECT task_name FROM task_log WHERE username = '$user_log' ORDER BY task_id ";
$task_result = mysqli_query($link, $sql_task);
while ($row = mysqli_fetch_array($task_result)) {
print_r($row);}
现在该语句可以正常工作并返回正确的数据,但它会将所有项目返回并将它们存储在数组的第一个槽中,而不是每个项目都位于单独的槽中。
使用 print_r,我可以看到数组的内容。仅使用 echo,它将它们全部显示为一个字符串,中间没有空格。
想要从表中调用所有 matt_smith 'task_name' 数据项。并且能够参考每一个。
如果有人可以帮助我将每个项目放在数组中的单独插槽中,或者只是一种调用单个项目的方法(id 不起作用,因为它们没有统一的 id;其他用户记录),那就太好了介于两者之间)。
【问题讨论】:
-
每次迭代都覆盖
$row,你需要$row[] = mysqli_fetch_array($task_result),但你可能需要mysqli_fetch_assoc -
警告:您对SQL Injections 持开放态度,应该真正使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。