【发布时间】:2011-08-06 00:37:19
【问题描述】:
这是我重复使用的函数中的两条违规行:
//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 无关。这与我们的发布过程以及在此过程中数据所在的位置有关。
【问题讨论】:
-
你为什么不把查询放在问题中......在你的问题中?
-
@Shredder:查询不是问题,因为它在针对数据库运行时可以很好地解决。事实是 $data 不应该是空白的。