PHP:MySQLi查询不';t返回真还是假?
如果我运行此代码,If子句将不会返回false,即使数据记录不存在于tablePHP: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 "
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是解决我问题的最佳方案(我使用多个数据集)谢谢!