Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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:MySQLi查询不';t返回真还是假?_Php_Sql_Mysqli - Fatal编程技术网

PHP:MySQLi查询不';t返回真还是假?

PHP:MySQLi查询不';t返回真还是假?,php,sql,mysqli,Php,Sql,Mysqli,如果我运行此代码,If子句将不会返回false,即使数据记录不存在于tablemyTable中的数据库myDB。我不知道怎么了 // MySQLi-Connection... $result = $mysqli->query("SELECT * FROM `myDB`.`myTable` WHERE `itemtype` = 'comment' AND `itemID` = 3"); if ($result) { echo "record found!"; } else { echo "

如果我运行此代码,If子句将不会返回false,即使数据记录不存在于table
myTable
中的数据库
myDB
。我不知道怎么了

// MySQLi-Connection...

$result = $mysqli->query("SELECT * FROM `myDB`.`myTable` WHERE `itemtype` = 'comment' AND `itemID` = 3");
if ($result) {
echo "record found!";
} else {
echo "record not found!";
}

itemID
=3的记录不存在,但my if子句表示$result返回true..

您的PHP if语句将计算为true,因为空的mysql结果集并不意味着它是一个失败的查询。查询运行正常,mysql检索到0行,因此$result的计算结果为true

要检查是否已检索到有效行,请尝试:

if ( ! empty($result) ) { 
  echo "record found!";
} else {
  echo "record not found!";
}

PHP if语句的计算结果将为TRUE,因为空的mysql结果集并不意味着它是一个失败的查询。查询运行正常,mysql检索到0行,因此$result的计算结果为true

要检查是否已检索到有效行,请尝试:

if ( ! empty($result) ) { 
  echo "record found!";
} else {
  echo "record not found!";
}
在这里使用非常合乎逻辑:

您不能将mysqli_结果对象放入if中,因为即使它产生0行,它仍将作为TRUE进行计算。

在这里使用它非常合乎逻辑:

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries
mysqli_query() will return a mysqli_result object. For other successful queries 
mysqli_query() will return TRUE. 
您不能将mysqli_结果对象放入if中,因为即使它产生0行,它仍将计算为TRUE

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries
mysqli_query() will return a mysqli_result object. For other successful queries 
mysqli_query() will return TRUE. 



您可以使用

$result = $mysqli->query("YOUR QUERY")); 
if($result->num_rows){
 // Records Found
}else{
 // Empty Result
}



您可以使用

$result = $mysqli->query("YOUR QUERY")); 
if($result->num_rows){
 // Records Found
}else{
 // Empty Result
}

打印($result),然后如果(!empty($result)){
失败时返回FALSE,则重试。
()空数据集不是失败的查询打印($result),然后如果(!empty($result)){
失败时返回FALSE,则重试。
()空数据集不是失败的查询$result->num_rows是解决问题的最佳方法(我使用了多个数据集)谢谢!$result->num_rows是解决我问题的最佳方案(我使用多个数据集)谢谢!