亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 用戶注冊

PHP 用戶注冊

PHP
FFIVE 2023-06-30 16:22:17
致命錯誤:未捕獲錯誤:在 X:\x\x\x\class\auth.php:29 中的 null 上調用成員函數prepare() 堆棧跟蹤:#0 x:\x\x\index.php(8 ): Auth->register_user() #1 {main} 在第 29 行的 x:\x\x\x\class\auth.php 中拋出這是數據庫連接文件class getDB {    protected $conn;    public $db_host = 'localhost';    public $db_user = 'root';    public $db_pass = '';    public $db_name = 'f_base';    public function getConn() {        try {            $this->conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass);            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);            $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);        } catch ( PDOException $e ) {            die ('<h1>ERROR:</h1><h2>'.$e->getMessage().'</h2>');        }    }    // TODO: Dodati funkcije koje ce moci da ucitaju databazu da bi se prikazalo nesto iz databaze }該類用于注冊class Auth {    public function __construct () {        $connection = new getDB();        $this->conn = $connection->getConn();        return $this->conn;    }    public function register_user ( $username, $email, $password, $r_date ) {        $reg_user = $this->conn->prepare("INSERT INTO korisnici ( username, email, password, r_date ) VALUES ( ?, ?, ?, ? )"); // THIS IS LINE I AM GETTING ERROR        $reg_user->execute( array( $username, $email, $password, $r_date ) );            }}我收到錯誤的這一行 $reg_user = $this->conn->prepare("INSERT INTO korisnici ( username, email, password, r_date ) VALUES ( ?, ?, ?, ? )"); // THIS IS LINE I AM GETTING ERROR
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

你犯了一個簡單而常見的錯誤。檢查類getDB方法getConn() - 您沒有返回任何導致錯誤消息“prepare() on null”的內容。您正在嘗試在Auth類構造中獲取 PDO 連接對象 $this->conn = $connection->getConn();


只需像這樣添加回報


class getDB {

protected $conn;


public $db_host = 'localhost';

public $db_user = 'root';

public $db_pass = '';

public $db_name = 'f_base';


public function getConn() {

    try {

        $this->conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass);


        $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    } catch ( PDOException $e ) {

        die ('<h1>ERROR:</h1><h2>'.$e->getMessage().'</h2>');

    }

    return $this->conn;

}

// TODO: Dodati funkcije koje ce moci da ucitaju databazu da bi se prikazalo nesto iz databaze 

}


查看完整回答
反對 回復 2023-06-30
  • 1 回答
  • 0 關注
  • 145 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號