我的老板最近要我修改一些PHP代码,但这不是我的常规任务,我在理解原始代码时遇到了一些问题。
所以,这就是我得到的:
//$query is set here
if ($result = mysql_query($query, $db)) {
$number = mysql_num_rows($result);
if ($number == 0) {
echo 'Error!';
}
else {
// do something
}
} // etc
我不确定第一行代码是做什么的。 为什么他这样写呢?我认为无论如何,它总会进入第一个'if'条件,我是否正确? 提前谢谢。
答案 0 :(得分:3)
我认为无论如何,它总会进入第一个'if'条件,我是否正确?
没有。 mysql_query
的返回值将分配给$result
。然后将对该值进行真实性测试。
如果查询有任何错误,那么它将为false。
答案 1 :(得分:2)
if ($result = mysql_query($query, $db)) {
这是检查$result
是否会返回true所以我们可以继续,$return
只是使用mysql_query
命令执行对数据库的查询,并作为变量传递查询{{1本身和连接参数$query
。如果这将返回false,则表示查询中存在错误
答案 2 :(得分:1)
//$query is set here
if ($result = mysql_query($query, $db)) {
这部分代码声明了数据库查询应该是什么,并尝试运行它。 myssql_query
运行数据请求(或尝试将数据放入数据库),但可能没有正确格式化,或者数据库可能有错误,或者它可能位于不同的服务器上且服务器已关闭,或者数据与数据库连接的数据的限制不匹配存在问题。
在任何情况下,它都会尝试从数据库中请求数据,并将该数据放入$result
。但是 - 如果将数据放入数据库时出现问题,那么它没有任何数据可以放入$result
,if
语句会将其视为错误,而不是先输入循环。
$number = mysql_num_rows($result);
if ($number == 0) {
在某种程度上,这是做类似的事情。以前的程序员基本上声明无论发生什么,$query
数据库(或输入数据)的数据库请求应至少返回一行数据,无论如何。如果一切运行正常,服务器正在运行,数据库正在运行,查询没有被拒绝......但是没有返回任何数据行...那么仍然有问题。也许是代码中的逻辑错误,也许在用户输入的字段中有一些格式不正确的数据,谁知道呢?但无论如何,如果没有任何回报,他想表示这里出了点问题。