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

标签 php mysql

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

$post = addslashes($post);

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

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

我只是想回应“格雷格!!!”如果查询“select id from Posts where post='$post'”返回任何内容。我发现有时这行得通,有时却行不通……所以不太确定。也许这是引号问题?......但我认为 addslashes 方法会解决这个问题

最佳答案

$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 来计算返回了多少行。

关于mysql查询结果的php if语句(检查查询是否返回任何内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40373001/

相关文章:

php - 通过 PHP 从 Postgres 正确读取 bool 值

php - 此电子邮件 header 的正确格式是什么?

mysql - 将具有级别的树节点转换为行列表

mysql - 使用 GROUP_CONCAT 选择多对多关系

php - 如何仅从 mysql PDO 选择查询中的时间戳中选择时间?

mysql - SQL 查询从一个或 3 个表中选择

php - 上传到mysql服务器不工作

php - 操作一个 3000 万字符长的字符串

php - 如何使用 laravel 5.4 验证 json 文件?

php - Zend 搜索序列号(字符串而不是整数)