原始SQL查询是这样的; SELECT id,post_title,post_date FROM wp_posts,其中id ='1'
当我检索记录时,我发现了它,但是当它返回结果时,我很困惑。这是我被卡住的地方。
while ($row = mysql_fetch_assoc($RS)) :
print_r ($row);
list($id,$post_title,$post_date) = $row;
endwhile;
print_r($ row)输出这个; 数组([ID] => 1 [post_title] => Hello world![post_date] => 2012-03-27 03:28:27)
当我在那里运行list函数时(显然是出于调试目的),我得到了这个;
Notice: Undefined offset: 2 in F:\inetpub\wwwroot\whatever\sql.php on line 147
Notice: Undefined offset: 1 in F:\inetpub\wwwroot\whatever\sql.php on line 147
Notice: Undefined offset: 0 in F:\inetpub\wwwroot\whatever\sql.php on line 147
造成这种情况的原因是什么?
答案 0 :(得分:5)
替换:
mysql_fetch_assoc($RS)
使用:
mysql_fetch_array($RS, MYSQL_NUM)
然后它应该工作,因为list
函数尝试使用数字键访问数组。
答案 1 :(得分:4)
我想答案就在于此;
list()仅适用于数值数组,并假设数字索引从0开始。
:(
答案 2 :(得分:1)
您使用了mysql_fetch_assoc,因此每行生成的数组在按键名称的键下有数据,而“list”尝试使用数值数组索引将变量与值匹配。您可以使用mysql_fetch_array。
答案 3 :(得分:1)
您也可以在这里使用extract()
; (documentation here。)
答案 4 :(得分:0)
$ categ = val1 | val2的
列表($之一,$二,$为三个)= @分裂( '[|]',$ CATEG);
如果您尝试列出不可用的值,则会返回错误Undefined Offset。
此处错误将是Undefined Offset 2.
因为在拆分$ categ时,它只有两个值,如果你尝试访问第三个值,那么它将返回错误。