while($rrr=mysql_fetch_array($result) or die("jhjhhjhjsddddd")){...}我觉得这句中间的or相当于 || ,两条语句都会执行, 而die()会终止程序执行,不管$rrr=mysql_fetch_array($result)对错与否,所以发生了楼主的情况!后面的die加的毫无必要,理论上就算$rrr=mysql_fetch_array($result)执行错误的话自然就会跳出循环,判断的话在循环里面做判断更好一些!
while($rrr=mysql_fetch_array($result) or die("jhjhhjhjsddddd"))没有测试,不过我觉得,当mysql_fetch_array($result)到最后一行后,肯定会执行die()并打印出jhjhhjhjsddddd的,print_r就不会执行了。 这里加这个属于逻辑错误。mysql_fetch_array($result)总会到没有数据的可赋值给$rrr的时候的。
这算是什么,怎么运行?
加了or die,一旦数据读取完毕 就会执行 die...
那么你后后的echo $oo不会被执行,也就显示不出来
while($rrr=mysql_fetch_array($result) or die("jhjhhjhjsddddd")){...}
并没有错误,只是没有必要
测试例:
$ar = array(
array(1),
array(2),
array(3),
array(4),
);
function fetch() {
global $ar;
return array_shift($ar);
}
while($rrr=fetch($result) or die("jhjhhjhjsddddd")) {
print_r($rrr);
}2、die应写在查询语句处
$result=mysql_query($sql2) or die("jhjhhjhjsddddd");
这样才能在sql指令出错的时候起到错误处理的功能
mysql_fetch_array($result) 无资源可取,返回false,
由于你用得 or (或运算符),程序就会执行 or 后面得表达式,
然而 or 后面的表达式永远都返回true, 虽然返回true, 但是它是 die() 返回得true,
所以你的程序执行到此就完美结束了, echo $oo还没来得及执行,当然没输出了!程序逻辑没搞清楚,哥们!
不要看别人用个or die(),自己也乱用,要明白在用!
print_r($rrr);
}
没错,这样是可以输出,但也会输出die的值,你改成下面的试试
$sr = '';
while($rrr=fetch($ar) or die("jhjhhjhjsddddd")) {
$sr .= print_r($rrr,true);
}
echo $sr;
最后一次循环false运行die的确没必要啊!
这里加这个属于逻辑错误。mysql_fetch_array($result)总会到没有数据的可赋值给$rrr的时候的。