我的php + recordsets有一个奇怪的问题。 我的代码:
$rc = mysql_query("select * from myTable",$db);
if (!$row = mysql_fetch_assoc($rc))
{
$eof=true;
}else{
echo "there is data!<br>";
$rs = mysql_fetch_array($rc);
echo $rs[id];
echo $rs[txt];
}
奇怪的是 - 查询是正确的 - 它回显“有数据”但是当回显实际字段值时返回空字符串.. :(
任何想法可能出错?
答案 0 :(得分:3)
在else
块中,您将使用mysql_fetch_array()
从数据库中重新获取一些数据。
但是mysql_fetch_assoc()
之前已经提取了第一行。
所以,基本上:
if
条件下,您抓取第一行 else
块
你应该只做一次 - 使用mysql_fetch_assoc
或mysql_fetch_array
- 而不是两次。
答案 1 :(得分:2)
您已经提取了数据,请改用<{1}}
mysql_num_rows()
答案 2 :(得分:1)
如果使用mysql_fetch_assoc($ rc)...
,请保持一致$rs = mysql_fetch_array($rc);
将返回一个枚举数组,因此$ rs ['id']不存在仅$ rs [0],$ rs [1]等。
使用
$rs = mysql_fetch_assoc($rc);
返回带有$ rs ['id']
的关联数组您的第一个测试也会提取并丢弃一行
引用$ rs中的索引:$ rs ['id']而不是$ rs [id]