Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 尝试获取非对象的属性(2)_Php - Fatal编程技术网

Php 尝试获取非对象的属性(2)

Php 尝试获取非对象的属性(2),php,Php,我总是犯这样的错误: 正在尝试获取非对象的属性 问题在于,当my DB中的这个字段用例如“1988-12-01 15:13:14”填充时,名为“sterfdatum”的SQL日期字段出现了问题。那么我的代码就没有问题了。但当字段类似于“0000-00-00:00:00”时,我试图从我的数据库中取出它,错误就会显示出来 这是我的模型: <?php public function get_artist($last_name = NULL , $front_name = NULL, $lang

我总是犯这样的错误:

正在尝试获取非对象的属性

问题在于,当my DB中的这个字段用例如“1988-12-01 15:13:14”填充时,名为“sterfdatum”的SQL日期字段出现了问题。那么我的代码就没有问题了。但当字段类似于“0000-00-00:00:00”时,我试图从我的数据库中取出它,错误就会显示出来

这是我的模型:

<?php

public function get_artist($last_name = NULL , $front_name = NULL, $language = 'nl')
    {
        // infoNL as language so language can be used in the View file
        if($language == 'nl')
        {
            $this->db->select('naam, voornaam, geboortedatum, geboorteplaats, foto, infoNL as language, sterfdatum')
                 ->from('kunstenaar')
                 ->where('naam', $last_name)
                 ->where('voornaam', $front_name)
                 ->limit(1);

            return $this->db->get()->row();
        }
        elseif($language == 'en')
        {
            $this->db->select('naam, voornaam, geboortedatum, geboorteplaats, foto, infoEN as language, sterfdatum')
                 ->from('kunstenaar')
                 ->where('naam', $last_name)
                 ->where('voornaam', $front_name)
                 ->limit(1);

            return $this->db->get()->row();
        }

    }

如果我理解正确的话,应该可以工作,您似乎在为视图指定一个非对象的可变艺术家

当在数据库中找不到与查询匹配的项时,可能会发生此错误

假设您的方法get_artist()返回空值,您应该尝试以下操作:

if(isset($artist))
{
    if($artist->sterfdatum != '0000-00-00 00:00:00')
    {
        $birthYear = date('Y', strtotime($artist->geboortedatum));
        $dieYear = date('Y', strtotime($artist->sterfdatum));
    }
}
但是,当发生错误时,您应该查看$artist中的值,以便对其进行正确的测试

希望对你有帮助

if(isset($artist->sterfdatum) && $artist->sterfdatum != '0000-00-00 00:00:00') { 
$birthYear = date('Y', strtotime($artist->geboortedatum)); 
$dieYear = date('Y', strtotime($artist->sterfdatum));
}
if(isset($artist))
{
    if($artist->sterfdatum != '0000-00-00 00:00:00')
    {
        $birthYear = date('Y', strtotime($artist->geboortedatum));
        $dieYear = date('Y', strtotime($artist->sterfdatum));
    }
}