Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查SQL中是否存在记录_Php_Mysql_Sql - Fatal编程技术网

PHP检查SQL中是否存在记录

PHP检查SQL中是否存在记录,php,mysql,sql,Php,Mysql,Sql,我试图检查SQL中是否存在记录,并获得返回->True或False。 它返回一个通知: 注意:正在尝试获取…中非对象的属性。。。。如果($result->num_rows>0) 如果查询未在$result变量中注入对象,则会发生这种情况。您可以进行以下更改以继续 if(is_object($result) && $result->num_rows > 0) { echo 'found'; // The record(s) do exist } else{

我试图检查SQL中是否存在记录,并获得返回->True或False。 它返回一个通知: 注意:正在尝试获取…中非对象的属性。。。。如果($result->num_rows>0)


如果查询未在
$result
变量中注入对象,则会发生这种情况。您可以进行以下更改以继续

if(is_object($result) && $result->num_rows > 0) {
     echo 'found'; // The record(s) do exist
} else{
     echo 'not found'; // No record found
}

if(!empty($result->num_rows)) {
         echo 'found'; // The record(s) do exist
    } else{
         echo 'not found'; // No record found
    }
也要保持简单:

$query = "SELECT * FROM `order` WHERE telephone = '$telephone' AND order_status_id='0' ";
订单
是一个很好的选择。将其用作字段名、表名或除“按字段名排序”以外的任何名称需要使用反勾号:

SELECT * FROM `order` WHERE ....
否则,您将得到一个查询错误,该错误将
$result
转换为布尔值false

此外,您的代码容易受到攻击。
我建议您在检查查询对象的行时使用准备好的语句。查询对象不包含行

Use like this

 $sqlReq = " SELECT * FROM order WHERE telephone = '".$telephone."' AND order_status_id='0' ";

                $queryReq = mysql_query($sqlReq) or die(mysql_error());

                if(mysql_num_rows($queryReq) > 0)
                {
                    echo "found";
                 }else{
                     echo "not found";
                       }
你想做的是

$data = $result->fetch_array();
if ($data->num_rows > 0)
{
    //Rows exist
} else {
    //No rows exist
}

首先检查
$result
值。使用
print\r($result)
检查值。
ORDER
是mysql保留字。您的查询失败,因为在mysql中
ORDER
reserved关键字
除了使用保留字外,它必须在backtick中,为什么要在脚本末尾关闭连接?作为补充的小提示,如果您仍然想使用“order”作为表名,但不想每次都“转义”它,您可以遵循名称约定和用户复数:“orders”您的查询失败,因为order是保留关键字,必须在backtick中!你太棒了!没有错误,但只返回ELSE的结果。为什么?你确定你的
$result
得到了预期的结果吗?我不这样认为,请分享您的
$result
内容?
$data = $result->fetch_array();
if ($data->num_rows > 0)
{
    //Rows exist
} else {
    //No rows exist
}