返回空值的PHP非eof记录集
我对php+记录集有一个奇怪的问题。 我的代码:返回空值的PHP非eof记录集,php,recordset,Php,Recordset,我对php+记录集有一个奇怪的问题。 我的代码: $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[i
$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];
}
奇怪的是-查询是正确的-它在回显数据,但回显实际字段值时返回空字符串..:
有什么问题吗?您已经获取了数据,请改用mysql\u num\u行
您已经获取了数据,请改用mysql\u num\u行
在使用if mysql\u fetch\u assoc$rc时保持一致
$rs = mysql_fetch_array($rc);
将返回一个枚举数组,因此$rs['id']不存在,只有$rs[0]、$rs[1]等
使用
返回带$rs['id'的关联数组的步骤
您的第一个测试还获取和丢弃一行
并用$rs引用索引:$rs['id']而不是$rs[id]如果使用mysql\u fetch\u assoc$rc
$rs = mysql_fetch_array($rc);
将返回一个枚举数组,因此$rs['id']不存在,只有$rs[0]、$rs[1]等
使用
返回带$rs['id'的关联数组的步骤
您的第一个测试还获取和丢弃一行
并在else块中引用$rs:$rs['id']而不是$rs[id]中的索引,您正在使用mysql\u fetch\u数组从数据库中重新获取一些数据
但是mysql_fetch_assoc已经在前面获取了第一行
因此,基本上:
在if条件下,您正在获取第一行
如果成功,则进入else块
您尝试获取第二行的位置
并使用返回的或未返回的数据,而不测试第二次提取是否成功。
您可能只需要执行一次获取—使用mysql\u fetch\u assoc或mysql\u fetch\u数组—而不是两次。在else块中,您正在使用mysql\u fetch\u数组从数据库重新获取一些数据
但是mysql_fetch_assoc已经在前面获取了第一行
因此,基本上:
在if条件下,您正在获取第一行
如果成功,则进入else块
您尝试获取第二行的位置
并使用返回的或未返回的数据,而不测试第二次提取是否成功。
您可能应该只执行一次获取—使用mysql\u fetch\u assoc或mysql\u fetch\u数组—而不是两次
$rs = mysql_fetch_assoc($rc);