Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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注意事项:尝试获取非对象的属性;“在一行上”;_Php_Mysql - Fatal编程技术网

PHP注意事项:尝试获取非对象的属性;“在一行上”;

PHP注意事项:尝试获取非对象的属性;“在一行上”;,php,mysql,Php,Mysql,因此,我在error.log中经常遇到这个错误,无法找到解决方法。我曾尝试在Stack Overflow上搜索类似的问题,但没有成功。如果您能帮上忙,我们将不胜感激 标记的行是错误显示的位置: if(isset($_GET['id']) && !empty($_GET['id'])){ //If statement content here... } elseif(isset($_GET['category']) && !empty($_GET['

因此,我在error.log中经常遇到这个错误,无法找到解决方法。我曾尝试在Stack Overflow上搜索类似的问题,但没有成功。如果您能帮上忙,我们将不胜感激

标记的行是错误显示的位置:

if(isset($_GET['id']) && !empty($_GET['id'])){
    //If statement content here...
    } elseif(isset($_GET['category']) && !empty($_GET['category'])) {
        $_GET['category'] = $database->escape_string(filter_var($_GET['category'], FILTER_SANITIZE_STRING));

        // This line:
        $category_title = $database->query("SELECT `name` FROM `categories` WHERE `slug` = '{$_GET['category']}'")->fetch_object()->name;

        $pageTitle = 'something';
        $description = 'something';
        $keywords = $category_title;
        $indexTitle = $category_title;
    }

错误是准确地描述了什么是错误的。在盲目调用方法或访问属性之前,需要检查
->
的左侧。i、 你是怎么想的?
fetch\u object()
的返回值是您期望的值吗?可以像这样重新创建:
$a='';echo$a->foo可能重复的警告:当使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用手动转义和字符串插值或串联来完成此操作,因为这样会创建严重的错误。意外未扫描的数据是一个严重的风险。使用绑定参数不会太冗长,也更容易检查是否正确。因为它不会抱怨您对布尔值调用
fetch\u object()
,所以此错误表示一切正常,但有人(或某物)提供了一个不存在的类别,而您的查询返回0个结果。因此
fetch_object()
返回
null
,而不是具有
名称
属性的对象。您需要将其拆分:首先获取
fetch_object()
的返回值,检查它是否为
null
,并相应地执行操作,或者如果它是您期望的对象,则获取它的
name
属性。感谢您的响应。还有人知道如何修复它吗?谢谢