我正在尝试查询php中的MySql数据库表以确定是否存在条目。如果它确实存在,我想知道它的ID,所以我可以将它用作另一个表中的外键。如果它不存在,我想添加新条目并查询其自动增量ID以用作外键。
首先,我执行一个mysqli_query命令并将句柄分配给$ query。
如果条目不存在,则命令
$result = mysqli_fetch_assoc($query)['id'];
返回nul。但是,当我测试它时,使用:
if ($result = "")
{
//commands
}
if语句没有执行,好像测试返回false。我在这里做错了什么,或者有更好的方法来完成我想要的结果?
答案 0 :(得分:0)
除非您运行PHP 5.5,否则不能使用从函数/方法调用返回的数组并立即取消引用它。尝试使用标准的5.5之前的语法:
$result = mysql_fetch_assoc($query);
if ($result['id']) {
...
}
代替。同样,请注意您的示例if()命令是错误的。单个=
执行分配, NOT 执行相等性测试。你可能想要
if ($result == "")
^^---note, 2 ='s
代替。
答案 1 :(得分:0)
在if查询中使用'=='而不是'='。比较应该是假的,而不是''。为了绝对确定,您可以使用严格比较'==='
if($result === FALSE)
我不同意上述答案的部分,其中$ result ['id']在mysql_fetch_assoc调用之后被立即引用;该代码不检查mysql_fetch_assoc确实返回了一个数组,它会产生一个PHP通知。
我会把它写成
$result = mysql_fetch_assoc($query);
if ($result === FALSE) {
// no result
}else{
$id = $result['id'];
}