ホームページ >バックエンド開発 >PHPチュートリアル >修正してください。ありがとうございます。致命的なエラー: 非オブジェクトに対するメンバー関数 query() の呼び出しです。

修正してください。ありがとうございます。致命的なエラー: 非オブジェクトに対するメンバー関数 query() の呼び出しです。

WBOY
WBOYオリジナル
2016-06-23 13:46:151230ブラウズ

タイトルの通り、エラーが発生しました。致命的なエラー: D:WWW2shouclassBulletin.php の 47 行目で非オブジェクトのメンバー関数 query() を呼び出します
コードは次のとおりです:
6f52268b4cc34f6ffa21f07e5ee516bbconn = mysqli_connect(" root", "pass ", "2shou");
mysqli_query($this->conn, "SET NAMES gbk");
}

function __destruct() {
// 接続を閉じる
mysqli_close($this- >conn);
}

// お知らせ情報を取得します
function GetBulletinInfo($bid) {
// クエリの SELECT ステートメントを設定します
$sql = "SELECT * FROM Bulletin WHERE Id='" 。 "'";
// レコードセットを開く
$results = $this->conn->query($sql);
// アナウンスデータを読み取る
if($row = $results->fetch_row()) {
$this->ID = $bid;
$this->タイトル = $row[1];
$this->PostTime = $row [3];
$this ->Poster = $row[4]; }
else {
$this->Id=0; }
}
// すべてのアナウンス情報を取得して結果セットを返す
function GetBulletinlist() {
/ /クエリの SELECT ステートメントを設定します
$sql = "SELECT * FROM Bulletin ORDER BY PostTime DESC"
$results = $this->conn->query($sql);
return $results; }

// すべてのアナウンス情報を取得し、結果セットを返す
function GetRecentBulletinlist() {
// クエリの SELECT ステートメントを設定
$sql = "SELECT * FROM Bulletin WHERE DateDiff(day, getdate(), Posttime)5228cd659b1086bcfe0ec1e7a7ee3da6conn->query($sql);
return $results;
}

// お知らせ情報を追加
function insert() {
$sql = "箇条書き (タイトル、内容、投稿時刻、ポスター) の値に挿入 ('" . $this->Title . "','" . $this->Content . "','" . $this->PostTime . "','" . $this->Poster . "')"
$this->conn->query($sql);
// お知らせ情報を変更します
function update($bid) {
$sql = "UPDATE Bulletin SET Title='" . "', Content='" . ', PostTime='" . $this->PostTime . "', Poster='" . $this->Poster . "' WHERE Id=" . $bid;
// お知らせ情報の一括削除
関数delete($bid) {
$sql = "DELETE FROM Bulletin WHERE Id IN (" . $bid . ")"
// SQL ステートメントを実行
$this->conn- >query($sql); }
}
?>


ディスカッションに返信 (解決策)

コンストラクターに入ります

function __construct() {
// データベースに接続します
$this->conn = mysqli_connect("localhost", " root" , "pass", "2shou");
mysqli_query($this->conn, "SET NAMES gbk");
}
つまり、 $this->conn はリソースです
が、他のリソースでは $results を使用します。アクセス用のメソッド = $this->conn->query($sql);
それでは、$this->conn が再びオブジェクトになったのはいつでしょうか?

したがって、コンストラクターは
function __construct() {  $this->conn = new mysqli("localhost", "root", "pass", "2shou");  $this->conn->set_charset('gbk');}
と書く必要があります


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。