因此,使用mysqli对象进行查询的正确格式为:
if ($result = $hookup->query($sql))
而不是:
if ($result == $hookup->query($sql))
为什么每个人都认为是这种情况?正确格式背后的逻辑是什么?
答案 0 :(得分:3)
第一个示例(正确的一个)将$hookup->query($sql)
的结果分配<{strong>到$result
,然后在if
中对“真值”进行评估。
第二个示例将$result
的现有值与$hookup->query($sql)
的结果进行比较。如果$result
尚未“真实”,则if
将评估为false。
答案 1 :(得分:1)
mysqli_result
只能从mysqli_query
返回,或者如果失败则返回false。
if (false) ... always false
if (mysqli_result) ... always true
但是,我总是这样做是为了允许更多的灵活性,例如存储的$ result以供以后使用,以确保不会出现异常
$result = $hookup->query($sql;
if ($result instanceof mysqli_result)
{
/* query success, proceed with something else */
}
else
{
/* query fail, execption */
}
答案 2 :(得分:0)
这是在不同背景下使用的两种不同的东西。
第一个例子(一个=
)表示:
如果
query()
的结果为真 - 哦,顺便说一句,将结果分配给新变量$result
- 然后执行以下操作:....
只需一步即可分配和检查结果。在您展示的上下文中,这通常是您想要的。
第二个例子(有两个==
)表示
如果
$result
的值等于query()
调用的返回值,请执行以下操作:.....