先制的な謝罪: この投稿には基本的な質問が含まれています。ただし、検索しても回答が見つかりませんでした。
基本的な ajax Web チャットを作成するためのいくつかの youtube チュートリアルに従っています。チュートリアルでは、MySQLi を使用して DB に接続しています。MySQLi の代わりに PDO を使用する以外は、同じ ajax チャット アプリケーションを作成したいと考えています。
この人物は、次の 2 つのファイルを使用します。
config.php
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'bucky_chat');
define('DB_PASSWORD', '123456');
define('DB_NAME', 'bucky_chat');
?>`
chat.class.php
<?php
require_once('config.php');
require_once('error_handler.php');
class Chat {
private $mysqli;
//constructor opens DB connection
function __construct(){
$this->mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
}
//destructor closes db connection
function __destruct(){
$this->mysqli->close();
}
}
?>
上記のスニペットを PDO で複製しようとしています。問題は、これを行うために私が見た PDO の例をどのように適応させるかがよくわからないことです。
まず第一に、なぜ彼がこれらのものを別のファイルで定義したのかについて混乱しています..これを行うことには何か利点がありますか?
私が見ている別の PDO チュートリアルでは、次の方法で実行できることがわかります。
<?php
$config['db'] = array(
'host' => 'localhost',
'username' => '',
'password' => '',
'dbname' => ''
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['db_name'], $config['db']['username'], $config['db']['password']);
//some code
$db = null; //closes connection
?>
`
これは私が (try catch ブロックで) 使用する必要があると思いますが、なぜ彼はこれらのものを配列に入れるのでしょうか? 物事を複雑にしすぎているようです...変数だけではないのはなぜですか? しかし、このコードは mysqli の例を再現していますか? PDO で __construct() が使用されていないのはなぜですか?
いくつかの小さな質問... ユーザーと一緒に Web サイトを作成する場合、DB 接続を格納する標準的な場所はありますか? 本のおすすめは?
これらすべての質問で申し訳ありませんが、すべての助けに強く感謝します!