我尝试将此作为测试目的。我不知道为什么会这样。那就是我需要专家的帮助。谢谢。
让我们假设我们有一个数据库并且我们已经建立了与数据库的连接。假设有一个名为 的表table
。表格内有两列 - id 和 name。表中有 5 行数据。表结构是
| id | name |
---------------
| 1 | name1 |
| 2 | name2 |
| 3 | name3 |
| 4 | name4 |
| 5 | name5 |
现在我的代码在这里-
<?php
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$result = mysql_query("SELECT * FROM `table`");
/* let's store this value in two different variables. */
$result1 = $result;
$result2 = $result;
/* let's perform mysql_fetch_array() and mysql_fetch_row() functions */
$result22 = mysql_fetch_row($result);
var_dump($result22);
$result11 = mysql_fetch_array($result);
var_dump($result11);
?>
结果:
array
0 => string '1' (length=1)
1 => string 'name1' (length=5)
array
0 => string '2' (length=1)
'id' => string '2' (length=1)
1 => string 'name2' (length=5)
'name' => string 'name2' (length=5)
如果我改变函数的顺序,它会导致:
array
0 => string '1' (length=1)
'id' => string '1' (length=1)
1 => string 'name1' (length=5)
'name' => string 'name1' (length=5)
array
0 => string '2' (length=1)
1 => string 'name2' (length=5)
似乎当我对 mysql_query 的结果执行一个函数时,该函数只是从结果中删除第一行,即使它在调用函数之前存储在其他变量中。
如果我添加一个条件 WHERE id
= 1 则第二个函数返回 false,例如:
array
0 => string '1' (length=1)
'id' => string '1' (length=1)
1 => string 'name1' (length=5)
'name' => string 'name1' (length=5)
boolean false
为什么会这样?提前致谢。