【发布时间】:2014-12-27 21:16:31
【问题描述】:
使用旧的mysql_ 语法,我可以做这样的事情:
$query=mysql_query('select id from rank');
for ($i=0; $i<$max; $i++) {
$id0[$i] = mysql_result($query, $i, "id");
$id1[$i] = mysql_result($query, $i+1, "id");
$id2[$i] = mysql_result($query, $i+2, "id"); }
我发现用mysqli 达到同样的结果有很多困难;通常我使用函数mysqli_fetch_assoc($query)来获取mysqli查询的数据,以递归方式逐行提取查询结果中的所有记录。
如何获得我需要的结果,即在递归函数的每个循环中提取查询结果的第 n、n+1、n+2 个元素?以及如何引用 id 字段的第 n 个元素?我似乎不可能一次处理一行查询结果......
如果这个问题看起来很愚蠢,请原谅,但我正在将使用 mysql_ 语法制作的旧网站转换为 mysqli_,即使我尝试参考,我也会遇到很多困难PHP.net 文档(当然还有 Stack Overflow 知识...)...
编辑(问题已解决):
我按照 Jeroen 的建议解决了我的问题:fetch_all 函数不可用,我创建了一个数组,通过循环存储 msqli 查询结果的每一行:
while ($row=mysqli_fetch_assoc($query))
$table[]=$row;
以这种方式操作,使用常用索引指向表中的每条记录要容易得多:
for ($i=0; $i<$max; $i++) {
$id0[$i]=$table[$i]["id"];
$id1[$i]=$table[$i+1]["id"];
$id2[$i]=$table[$i+2]["id"]; }
【问题讨论】:
-
如果您要转换网站,我建议使用 PDO 类。 us3.php.net/manual/en/class.pdo.php
-
@JakeParis:仅供参考,他正在寻找 mysqli_ 解决方案。他只是说他之前使用的是mysql_,但他想在mysqli中实现同样的事情。
-
似乎有很多人在阅读问题之前就回答了这些问题......我认为这种行为对社区和试图解决问题的人来说并不是真正有用的问题...
-
我想你在找
mysqli_fetch_all?如$results[$i]['id']?
标签: php mysql multidimensional-array mysqli