比如在PHP文件中这么调用:
if(mysql_query($sql))...else...
$sql为insert语句
似乎这么写不管返回什么值都会执行else语句
而写成:
$DB=mysql_query($sql);
if($DB>0)echo "true";
else echo "false";
则可以,所以这是什么情况==!
另外我是用一个JS文件$.post到PHP文件,而如果吧ECHO改成RETURN语句的话就无法执行,这又是什么情况==!
比如在PHP文件中这么调用:
if(mysql_query($sql))...else...
$sql为insert语句
似乎这么写不管返回什么值都会执行else语句
而写成:
$DB=mysql_query($sql);
if($DB>0)echo "true";
else echo "false";
则可以,所以这是什么情况==!
另外我是用一个JS文件$.post到PHP文件,而如果吧ECHO改成RETURN语句的话就无法执行,这又是什么情况==!
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
mysql_query的返回值,根据sql语句可能有不同。
PHP:mysql_query - Manual
对于你说的INSERT语句,在成功后应该是返回TRUE的,在失败的时候才是返回FALSE,执行你的else部分。
对于你第二个比较语句,先假设你的$DB就是一个bool值,实际发生的过程是,将0转换成为了bool值(应该是FALSE),而
TRUE>FALSE
,因此当你的$DB是TRUE的情况下大于0成立。但是你这样的判断方法是极其不合理的。
判断
mysql_query()
是否执行成功,应该使用严格$rst !== false
而当成功返回后,判断
mysql_query()
影响的行数,应该对相应的sql语句类型使用mysql_num_rows()
或mysql_affected_rows()
来查看。建议多看下手册。