用于mysql查询结果的php if语句(检查查询是否返回任何内容)

时间:2016-11-02 05:24:24

标签: php mysql

我收到了一个错误..我想这可能是因为这段代码:

$post = addslashes($post);

 $r = $conn->query("select id from Posts where post='$post'");

 if($id = $r->fetch_assoc()["id"]){
    echo 'greg!!!<br>';
 }

我只想回应'greg !!!'如果查询“从帖子中选择id,其中post ='$ post'”会返回任何内容。我发现有时它会起作用,有时它不会......所以不太确定。也许这是一个引用问题?...但我认为addslashes方法会处理那个

2 个答案:

答案 0 :(得分:0)

$r->fetch_assoc()["id"]

我认为这不起作用,因为$r->fetch_assoc()还不是数组。应该是这样的:

$post = addslashes($post);

$r = $conn->query("select id from Posts where post='$post'");
$fetch = $r->fetch_assoc();
if($id = $fetch["id"]){
   echo 'greg!!!<br>';
}

如果SQL查询返回任何内容,它将进入if。您始终可以使用f.ex。:

检查数组
print_r($fetch);

或使用$r->num_rows计算已返回的行数。

答案 1 :(得分:0)

如果是PDO,您可以使用rowCount(),如果MySQLi可以使用num_rows来检查是否有任何行返回。

// PDO
if($r->rowCount() > 0){echo "greg";}

// MySQLi
if($r->num_rows > 0){echo "greg";}