随着老mysql_
语法,我能够做这样的事:一个mysqli的查询结果中提取第n个元素
$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文档(当然堆栈溢出知识...)...
EDIT(问题解决了): 我按照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类。 http://us3.php.net/manual/en/class.pdo.php – JakeParis 2014-10-31 14:08:19
@JakeParis:只是他正在寻找一个mysqli_解决方案。他只是说他以前使用过mysql_,但他希望在mysqli中实现同样的功能。 – 2014-10-31 14:08:24
@TiborB。,见http://us3.php.net/manual/en/function.mysqli-fetch.php – JakeParis 2014-10-31 14:09:48