繁体   English   中英

没有任何结果时,MySQLi查询给出错误

[英]MySQLi query giving error when there no any result

我正在尝试从数据库中查找并回显一个结果。 我正在如下使用

<?php
error_reporting(E_ALL);
include_once("includes/connection.php");
$input = "OUT";
$answer = $mysqli->query("SELECT answer FROM faq WHERE question LIKE '%".$input."%' LIMIT 1")->fetch_object()->answer; 
echo $answer;
?>

当有结果时,它工作正常,但无结果时,出现如下所示的错误

Notice: Trying to get property 'answer' of non-object in C:\xampp\htdocs\new\test.php on line 5

我想使用if来处理此错误。 我对PHP不太了解,特别是对查询不了解。 让我知道是否有人可以帮助我摆脱困境。 谢谢

尝试这个:

if ($answer) {
    echo $answer;
} else {
    die('No Answer Found');
}

希望它能工作。

这是由于方法链接的使用过多而引起的,为什么您需要将每个调用放在一行中?

您应该检查是否首先检索到对象...

$query = $mysqli->query("SELECT answer FROM faq WHERE question LIKE '%".$input."%' LIMIT 1");
if ( $query && ($row = $query->fetch_object()) ) {
    $answer = $row->answer; 
    echo $answer;
}

您还应该研究准备好的语句,因为这可能导致SQL注入和其他问题。 - 如何在php中创建安全的mysql准备语句?

您也可以使用try{} catch {}

try {
    $answer = $mysqli->query("SELECT answer FROM faq WHERE question LIKE '%".$input."%' LIMIT 1")->fetch_object()->answer; 
}
catch (Exception $e) {
    $errormsg = $e->getMessage();
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM