解释正确的mysqli对象的逻辑

时间:2011-01-04 21:47:19

标签: php mysql sql mysqli

因此,使用mysqli对象进行查询的正确格式为:

if ($result = $hookup->query($sql))

而不是:

if ($result == $hookup->query($sql))

为什么每个人都认为是这种情况?正确格式背后的逻辑是什么?

3 个答案:

答案 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()调用的返回值,请执行以下操作:.....