簡體   English   中英

PHP PDO數據庫連接類

[英]php pdo db connection class

<?php

    class DB_Handler{

        private $host;
        private $db_name;
        private $db_username;
        private $db_password;
        public $dbh;

        public function __construct( $db_host, $db_name, $db_username, $db_password ){

            $this->host = $db_host;
            $this->db_name = $db_name;
            $this->db_username = $db_username;
            $this->db_password = $db_password;
        }

        public function connect(){
            try{                
                $this->dbh = new PDO("mysql:host=$this->host; db_name =$this->db_name, $this->db_username, $this->db_password");

                $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            }
            catch(PDOException $e){
                $error = "Error: ".$e->getMessage().'<br />';
                echo $error;
                return false;
            }
            return true;
        }   

    }

    $db_host = "localhost";
    $db_name = "db_handler_01";
    $db_username = "root";
    $db_password = "sd";

    $snowboard_db = new DB_Handler($db_host, $db_name, $db_username, $db_password);

    $result = $snowboard_db->connect();



    if($result){
        echo "DB Connected <br>";
        echo $snowboard_db;
    }
    else{
        echo "DB is not Connected <br />";      
    }

?>

如果我給數據庫詳細信息是對還是錯,它僅顯示數據庫已連接。 請讓我知道我在哪里做錯。

這里有兩個可能的問題。

第一個已經提到過,您需要發送用戶名和密碼作為PDO構造函數的第二個和第三個參數。 由於引號-可能放錯了位置,因此您正在發送第一個參數中的所有內容。

第二個問題是您在建立(或嘗試建立)連接告訴PDO引發異常。 對於連接錯誤,可能要晚了。

如果還想捕獲連接錯誤,則可以使用必需的選項將第4個參數發送到PDO構造函數:

$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$this->dbh = new PDO("mysql:host={$this->host}; db_name ={$this->db_name}", 
                     $this->db_username, $this->db_password, $opt);
$this->dbh = new PDO("mysql:host=$this->host; db_name =$this->db_name,
                      $this->db_username, $this->db_password");

語法不正確(u弄混了最終的“”)

正確的語法是:

$this->dbh = new PDO("mysql:host=$this->host;db_name=$this->db_name",
                          $this->db_username, $this->db_password);

順便說一句,你不能回應你的課程,它將返回:

可捕獲的致命錯誤:無法在第49行的C:... \\ index.php中將類DB_Handler的對象轉換為字符串

來源: PHP.net:PDO連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM