Php 奇数mysql\u fetch\u数组行为
下面是我从一个重用函数中得到的两行有问题的代码:Php 奇数mysql\u fetch\u数组行为,php,mysql,Php,Mysql,下面是我从一个重用函数中得到的两行有问题的代码: //snip $req = mysql_query($sql,$db) or die(db_query_error($sql,mysql_error())); //Breakpoint A $data = mysql_fetch_array($req); //Breakpoint B //snip 在断点A处: $req是有效的资源 $db是有效的资源 $sql是有效的,对数据库运行时将返回预期值,即一个简单字符串 不会抛出任何错误 在断点
//snip
$req = mysql_query($sql,$db) or die(db_query_error($sql,mysql_error()));
//Breakpoint A
$data = mysql_fetch_array($req);
//Breakpoint B
//snip
在断点A处:
- $req是有效的资源
- $db是有效的资源
- $sql是有效的,对数据库运行时将返回预期值,即一个简单字符串
- 不会抛出任何错误
- $data应该是一个数组,索引0是一个字符串,其关联名为“get”,具有相同的字符串
- 如果我计算($data),我得到1李>
- 如果我回显“--”$data。“-”,我得到“-”
- 如果我回显$data[0],则为空
- 如果我回显$data[1],则为空(这不应该产生错误吗?)
var_dump($data);
也试着改变
mysql_fetch_array();
到
或
如果你使用数字索引
我想这些测试会让你给出答案为什么不对查询提出疑问..在你的问题中?@shreader:查询不是问题,因为它在db上运行时可以很好地解决问题。事实上,$数据在不应该是空白的时候是空白的。我很确定我已经尝试过var_转储,它只是空白的。我假设我们的自定义debug()函数使用这个函数。此外,我不确定是否可以更改为“获取”assoc或“获取”row。现有的代码库在任何地方都使用这个函数,我不确定仅仅使用索引或关联的影响。我仔细检查了一下,我们的自定义调试函数实际上使用了print\r。我将尝试var_dump,看看是否有什么不同。
mysql_fetch_assoc();
mysql_fetch_row();