第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何正確設(shè)置PDO連接

如何正確設(shè)置PDO連接

12345678_0001 2019-06-01 16:20:15
如何正確設(shè)置PDO連接我不時會看到關(guān)于連接數(shù)據(jù)庫的問題。大多數(shù)答案不是我做的那樣,或者我可能得不到正確的答案。無論如何,我從來沒有想過這件事,因為我這樣做是為了我自己。但是這里有一個瘋狂的想法;也許我做錯了,如果是這樣的話;我真的很想知道如何使用PHP和PDO正確地連接到MySQL數(shù)據(jù)庫,并使它更容易訪問。我就是這樣做的:首先,這是我的文件結(jié)構(gòu)(脫去):public_html/* index.php   * initialize/     -- load.initialize.php     -- configure.php     -- sessions.phpindex.php在最上面,我require('initialize/load.initialize.php');.load.initialize.php#   site configurations     require('configure.php');#   connect to database     require('root/somewhere/connect.php');  //  this file is placed outside of public_html for better security.#   include classes     foreach (glob('assets/classes/*.class.php') as $class_filename){         include($class_filename);     }#   include functions     foreach (glob('assets/functions/*.func.php') as $func_filename){         include($func_filename);     }#   handle sessions     require('sessions.php');我知道有一種更好或者更正確的方法來包含類,但是我不記得它是什么。還沒來得及調(diào)查,但我覺得autoload..差不多吧.。figre.php在這里,我基本上只是覆蓋了一些php.ini-屬性并為站點執(zhí)行其他全局配置connect.php我已經(jīng)將連接放到一個類上,以便其他類可以延展這個.。class connect_pdo{     protected $dbh;     public function __construct()     {         try {             $db_host = '  ';  //  hostname             $db_name = '  ';  //  databasename             $db_user = '  ';  //  username             $user_pw = '  ';  //  password             $con = new PDO('mysql:host='.$db_host.'; dbname='.$db_name, $db_user, $user_pw);               $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );             $con->exec("SET CHARACTER SET utf8");  //  return all sql requests as UTF-8           }         catch (PDOException $err) {               echo "harmless error message if the connection fails";             $err->getMessage() . "<br/>";             file_put_contents('PDOErrors.txt',$err, FILE_APPEND);  // write some details to an error-log outside public_html               die();  //  terminate connection         }     }在這里,我相信有巨大的改進空間,因為我最近開始學(xué)習(xí)OOP,并使用PDO而不是MySQL。所以我剛剛學(xué)習(xí)了幾個初學(xué)者的教程,并嘗試了不同的東西.
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經(jīng)驗 獲得超13個贊

我建議不要用$_SESSION若要全局訪問DB連接,請執(zhí)行以下操作。

你可以做幾件事中的一件(按順序)從壞到最好(做法):

  • 存取

    $dbh

    使用

    global $dbh

    在您的函數(shù)和類中
  • 使用單例注冊表,并全局訪問該注冊表,如下所示:

    $registry = MyRegistry::getInstance();$dbh = $registry->getDbh();
  • 將數(shù)據(jù)庫處理程序注入需要它的類,如下所示:

    class MyClass {
        public function __construct($dbh) { /* ... */ }}

我強烈推薦最后一個。它被稱為依賴注入(DI),倒置控制(IoC),或簡單的好萊塢原則(不要打電話給我們,我們會打電話給你)。

然而,它是一個更先進的,需要更多的“布線”沒有框架。因此,如果依賴項注入對您來說太復(fù)雜了,請使用單例注冊中心而不是一堆全局變量。


查看完整回答
反對 回復(fù) 2019-06-01
  • 3 回答
  • 0 關(guān)注
  • 796 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號