Php 错误:“尝试获取非对象的属性”
所以我有这个麻烦。第3、4、5行出现错误。以下是我定义对象属性的方式:Php 错误:“尝试获取非对象的属性”,php,html,web,Php,Html,Web,所以我有这个麻烦。第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_PASS
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行。请在这些行上加上注释。对不起。已更正。您的问题中没有试图获取对象属性的代码。。。同样,您的article类也没有构造函数,所以请检查新的article$row真正生成了什么,或者$row包含了什么,conn和sql应该是$conn和$sql。请把这个关上。