【发布时间】:2021-12-12 14:28:28
【问题描述】:
我有一个 MySQL 服务器,我想用 PHP 指令从数据库中获取 X 行。这是我的命令和我的数据库信息(quote = "Q-1-Rev04"):
$quoteLineRequest = "SELECT `id`, `quantity`, `unitprice`, `goodsref` FROM `quoteline`
WHERE `quote` = '".$quoteid."'";
if($result = mysqli_query($link, $quoteLineRequest)){
if (mysqli_num_rows($result) > 0){
$quoteLines = mysqli_fetch_assoc($result);
var_dump($quoteLines);
}
}
但是当我使用 var_dumping $quoteLines 时,它只给我 4 个结果,而不是预期的 12 个:
array(4) { ["id"]=> string(3) "113" ["quantity"]=> string(4) "1100" ["unitprice"]=> string(4) "0.26" ["goodsref"]=> string(8) "100-0011" }
为什么没有抓取所有对应的值?
【问题讨论】:
-
(可能)旁注:不要使用字符串插值或连接将值获取到 SQL 查询中。这很容易出错,并且可能使您的程序容易受到 SQL 注入攻击。使用参数化查询。见"How to include a PHP variable inside a MySQL statement" 和"How can I prevent SQL injection in PHP?"。
-
您是否阅读了 mysqli_fetch_assoc 的文档页面? php.net/manual/en/mysqli-result.fetch-assoc.php 。它告诉这个函数从结果中一次返回一行。它还包含如何使用循环来获取所有行的示例——在其他十亿个在线地方也有这样的示例。几乎任何 PHP/SQL 教程都可能向您展示它是如何完成的。