簡體   English   中英

使用PDO連接到MySQL時出現問題

[英]Problems connecting to MySQL using PDO

我一直在嘗試將應用程序從使用已貶值的mysql語法轉換為PDO以連接到數據庫並執行查詢,到目前為止,這一直很痛苦。

現在,我有一個類db_functions.php,我在其中嘗試創建與數據庫的PDO連接,並在其中執行所有CRUD操作。

這是代碼示例:

db_functions.php
<?php

class DB_Functions {

    private $db;

    // constructor
    function __construct() {
        require_once 'config.php';
        // connecting to mysql
        try {
        $this->$db = new PDO('mysql:host=localhost;dbname=gcm', DB_USER, DB_PASSWORD);
        }
        catch (PDOException $e) {
            $output = 'Unable to connect to database server.' .
            $e->getMessage();
            exit();
        }
    }

    // destructor
    function __destruct() {

    }

public function getAllUsers() {
    try {
    $sql = "select * FROM gcm_users";
    //$result = mysql_query("select * FROM gcm_users");
    $result = $this->$db->query($sql);
    return $result;
    }
    catch (PDOException $e) {
        $error = 'Error getting all users: ' . $e->getMessage();
    }
}

使用該代碼,我得到以下錯誤:

Notice: Undefined variable: db in C:\xampp\htdocs\gcm\db_functions.php on line 12

Fatal error: Cannot access empty property in C:\xampp\htdocs\gcm\db_functions.php on line 12

第12行是:

 $this->$db = new PDO('mysql:host=localhost;dbname=gcm', DB_USER, DB_PASSWORD);

我該如何解決這個問題,以便擁有與數據庫的PDO連接的正確實例,可用於在db_functions中的其他方法getAllUsers()getAllUsers()創建查詢

我使用了如何創建具有依賴項注入和接口的連接類的答案 無濟於事。

錯字

//$this->$db = 
$this->db = 

同樣在這里

//$this->$db->query($sql);
$this->db->query($sql);

而且我也將使用127.0.0.1而不是localhost來提高性能,否則進行連接將花費很長時間...僅幾秒鍾即可進行連接...

暫無
暫無

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

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