Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 奇数mysql\u fetch\u数组行为_Php_Mysql - Fatal编程技术网

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是有效的,对数据库运行时将返回预期值,即一个简单字符串
  • 不会抛出任何错误
在断点B处:

  • $data应该是一个数组,索引0是一个字符串,其关联名为“get”,具有相同的字符串
问题是,在这个页面上,除了一个查询外,每个查询都可以工作。对于不起作用的查询,当手动运行SQL时,它会起作用并返回正确的值。我在调用之前和之后都运行了一些查询,这些查询工作正常

  • 如果我计算($data),我得到1
  • 如果我回显“--”$data。“-”,我得到“-”
  • 如果我回显$data[0],则为空
  • 如果我回显$data[1],则为空(这不应该产生错误吗?)
编辑#1 -正在使用自定义调试函数中的print\u r。 -$data的var_转储显示它是“bool(false)”。$db或$sql变量都有问题

编辑#2 这个问题与MySQL无关。这与我们的发布过程以及在此过程中数据的位置有关。

您可以试试

 var_dump($data);
也试着改变

mysql_fetch_array();

如果你使用数字索引


我想这些测试会让你给出答案

为什么不对查询提出疑问..在你的问题中?@shreader:查询不是问题,因为它在db上运行时可以很好地解决问题。事实上,$数据在不应该是空白的时候是空白的。我很确定我已经尝试过var_转储,它只是空白的。我假设我们的自定义debug()函数使用这个函数。此外,我不确定是否可以更改为“获取”assoc或“获取”row。现有的代码库在任何地方都使用这个函数,我不确定仅仅使用索引或关联的影响。我仔细检查了一下,我们的自定义调试函数实际上使用了print\r。我将尝试var_dump,看看是否有什么不同。
mysql_fetch_assoc();
mysql_fetch_row();