关于php中mysql_connect($host,$user,$pass) or die(mysql_error())写法的疑问

一般在连接数据库的时候,语句都会这样写:$link=mysql_connect($host,$user,$pass)ordie(mysql_error());关于这条语句... 一般在连接数据库的时候,语句都会这样写:
$link = mysql_connect($host,$user,$pass) or die(mysql_error());
关于这条语句,我是这么理解的:php会认为后边的是一个逻辑表达式。依据逻辑表达式的特点,如果前一条件为真(即成功连接上了数据库),那么就不会计算后边的表达式是否为真。如果前边的为假(即连接数据库失败),那么就要计算后边的表达式,就会执行die()语句。但问题是,为什么我把die()语句换成别的就不行了呢?比如换成echo 就会报错!
谁来解释一下啊!!
对JovenShao说:这条语句的意思我很清楚,并不用在重复的解释。请明白的说一下为什么用echo语句不行。

对jqqwww 说:我知道下边的语句都会出错。但是现在不是sql语句出错的问题。二是解释器会直接报错,说遇到不期望的echo。

我可以把我想应用到的地方告诉大家:我有很多数据库要连接,如果这个数据库不存在则继续连接下一个执行操作。所以我想写成这样: mysql_connect($host,$user,$pass) or continue;
但是php引擎会报错!

array_sum兄说的还是很有道理的,虽然我感觉不完全对。我现在的理解是这样的:
echo、print、continue这类的语句都是不能跟的,因为他们根本不是函数(你去查php手册就会有这样的话:echo() is not actually a function (it is a language construct)。意思是说:echo并不是真正意义上的函数,它只是一个语言构造),不是函数,就没有任何的返回值。没有返回值php引擎就无法判断它的真假,所以这条逻辑表达式就是错误的。
谁还有更好的见解,希望能拿出来共享。大家多多交流!
展开
 我来答
jqqwww
2010-06-02 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:96
采纳率:0%
帮助的人:73.5万
展开全部
因为你用echo的话,如果你连接数据库失败,系统会打印错误代码,并且会继续执行下面的命令,比如你下面的是查询等SQL语句就会不断打印错误代码,这样会非常难看(当然你也可以屏蔽错误),但是最重要的是:在很多操作中,数据库操作是主要的目的,如果你的数据库连接就已经出问题,那你继续下面的静态输出似乎非常没有必要性,还不如停止下来让设计人员知道问题出在哪里去消除错误!
hotdigger
2010-06-02 · TA获得超过3590个赞
知道大有可为答主
回答量:1458
采纳率:50%
帮助的人:613万
展开全部
为什么我把die()语句换成别的就不行了呢?比如换成echo 就会报错!
=================
那是因为or是逻辑运算符,不能直接跟echo输出语句.你可以换成其他的语句,或函数.
function demo(){
echo "exit...";
exit();
}
$line = 'aaaaa';
$line == "aaaa" or demo();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JovenShao
2010-06-02 · TA获得超过514个赞
知道小有建树答主
回答量:1161
采纳率:80%
帮助的人:612万
展开全部
die是输出并且退出程序
echo只是输出

如果在边接出错的情况下退出,下面的程序则不会运行

正如jqqwww所说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sanwkj
2010-06-02 · TA获得超过126个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:118万
展开全部
可以认为,or 是一个特殊的语法噻。后面只能跟die;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式