先发制人的道歉:这篇文章包含基本问题。但是,我已经搜索过,我没有找到答案,如果有一个......对不起。
我正在关注一些用于制作基本 ajax 网络聊天的 youtube 教程,并且在教程中,该人正在使用 MySQLi 连接到数据库。我想创建相同的 ajax 聊天应用程序,但我想使用 PDO 而不是 MySQLi。
该人使用这两个文件:
配置文件
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'bucky_chat');
define('DB_PASSWORD', '123456');
define('DB_NAME', 'bucky_chat');
?>`
聊天类.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 示例?为什么我没有看到 __construct() 与 PDO 一起使用?
一些小问题......当与用户一起创建网站时,是否有存储数据库连接的标准位置?有什么书推荐吗?
抱歉所有这些问题,非常感谢所有帮助!