奇怪的mysql_fetch_array行为

时间:2011-08-06 00:37:20

标签: 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有效,当针对数据库运行时,将返回预期值,一个简单的字符串
  • 不会引发任何错误

在断点B:

  • $ data应该是一个数组,索引0是一个字符串,其关联名为“get”,具有相同的字符串

问题是在这个页面上,除了一个查询之外,每个查询都有效。对于不起作用的查询,当手动运行SQL时,它会工作并返回正确的值。我在此调用之前和之后运行的查询运行正常。

  • 如果我算数($ data),我会得到1.
  • 如果我回复“ - ”。$ data。“ - ”,我得到“ - ”。
  • 如果我回显$ data [0],空白
  • 如果我回显$ data [1],空白(这不应该会产生错误吗?)

编辑#1 - 正在使用我们的自定义调试功能中的print_r。 - $ data的var_dump表明它是“bool(false)”。 $ db或$ sql变量都有问题。

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

1 个答案:

答案 0 :(得分:2)

你可以尝试

 var_dump($data);

也尝试改变

mysql_fetch_array();

mysql_fetch_assoc();

mysql_fetch_row();

如果使用数字索引。

我认为这些测试会给你答案