这段代码试图从一个名为R的表中获取信息,但我在第6行收到错误:
解析错误:语法错误、第 6 行get_R.php中意外T_LOGICAL_OR
我和我的几个同事都看过了,我们想不通。这是代码的副本:
<?php
function get_R( $s) {
(
$t = mysql_query ( $s) ) or die (mysql_error() );
if (mysql_num_rows($t) == 0) or die ("<br> No data in R<br>");
$out = "" ;
$out .=
"<table style= '" color:red ; background:line; '" >";
/*................................*/
while ( $r = mysql_fetch_array($t) ) {
/*.....................*/
};
$out .= "....";
return $out;
}
?>
有什么想法吗?
这一行没有意义:
if (mysql_num_rows($t) == 0) or die ("<br> No data in R<br>");
不能有 if(...) or ...
语句;它不是有效的语法。你想要这样做:
if (mysql_num_rows($t) == 0) {
die ("<br> No data in R<br>");
}
或者,你可以做
mysql_num_rows($t) or die ("<br> No data in R<br>");
另外,请不要使用mysql_*
;mysql_*
函数已过时、已弃用且不安全。请改用MySQLi
或PDO
。
你应该使用
if
或 or
,你不应该同时使用两者。
这是通常的编写方式:
if (mysql_num_rows($t) == 0) {
die("<br> No data in R<br>");
}
但您可以使用:
mysql_num_rows($t) != 0 or die("<br> No data in R<br>");
注意我不得不将比较从==
更改为!=
,因为当第一个表达式失败时or
执行下一个表达式。我也可以改or
改成and
。
or die
通常仅在执行赋值或调用函数时使用,并且您希望在失败时退出。当您测试像这样一个简单的条件时,通常不会使用它。
你有if (condition) or die(..)
这是怎么回事?
使用condition or die(..)
,要么使用if (condition) { .. } else { .. }
不要尝试组合这两种语法。
测试此代码:
<?php
function get_R( $s) {
$t = mysql_query ( $s) or die (mysql_error() );
if (mysql_num_rows($t) == 0) die ("<br> No data in R<br>");
$out = "" ;
$out .=
"<table style= '" color:red ; background:line; '" >";
/*................................*/
while ( $r = mysql_fetch_array($t) ) {
/*.....................*/
};
$out .= "....";
return $out;
}
?>