【问题标题】:Error: 'Trying to get property of non-object'错误:'试图获取非对象的属性'
【发布时间】:2015-01-20 09:15:07
【问题描述】:

所以我遇到了这个麻烦。第 3、4、5 行的错误。这就是我定义对象属性的方式:

class Article {
//line 3
public $id; // line 4
public $pubDate; // line 5
public $title;
public $content;

这是我的错误方法:

  public static function getById( $id ) {
  $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  $sql = "SELECT *, UNIX_TIMESTAMP(pubDate) AS pubDate FROM material WHERE id = :id";
  $st = $conn->prepare( $sql );
  $st->bindValue( ":id", $id, PDO::PARAM_INT );
  $st->execute();
  $row = $st->fetch();
  $conn = null;
  if ( $row ) return new Article( $row );
}

我尝试使用以下方法禁用错误:

error_reporting(0);
@ini_set('display_errors', 0);

但这只是掩盖了问题,出版物仍然没有出现在页面上。 谢谢。

这是函数构造函数:

public function __construct($data = array()) {
    if ( isset( $data['id'] ) ) $this->id = $data['id'];
    if ( isset( $data['pubDate'] ) ) $this->pubDate = $data['pubDate'];
    if ( isset( $data['title'] ) ) $this->title = $data['title'];
    if ( isset( $data['content'] ) ) $this->content = $data['content'];
}

以及调用getById方法的函数:

function viewArticle() {
if ( !isset( $_GET["articleId"] ) || !$_GET["articleId"] ) {
    homepage();
    return;
}

$results = array();
$results['article'] = Article::getById( (int) $_GET["articleId"] );
$results['pageTitle'] = $results['article']->title;
require( TEMPLATE_PATH . "/viewArticle.php" );

}

【问题讨论】:

  • 你在哪一行得到错误?顺便说一句,你不应该只是试图抑制错误。
  • 上面没有34行。请用注释标记行。
  • 对不起。已更正。
  • 您的问题中没有代码试图获取对象的属性...也没有您的文章类的构造函数,因此请查看 new Article($row) 真正产生了什么或什么$row 包含
  • connsql 应该是 $conn$sql。请关闭它。

标签: php html web


【解决方案1】:

已找到解决方案。问题是 - 我的愚蠢。 向所有指导我并回应我的求助请求的人致以最诚挚的问候。

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2016-06-13
    • 2018-06-02
    • 2017-08-20
    • 1970-01-01
    相关资源
    最近更新 更多