PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN连接到 MySQL 数据库

描述

PDO_MYSQL 数据源名称 (DSN) 由以下元素组成

DSN 前缀

DSN 前缀为 mysql:

主机

数据库服务器所在的 hostname。

端口

数据库服务器监听的端口号。

数据库

数据库的名称。

unix_socket

MySQL Unix 套接字(不应该与 hostport 一起使用)。

字符集

字符集。有关更多信息,请参见 字符集 概念文档。

示例

示例 #1 PDO_MYSQL DSN 示例

以下示例展示了连接到 MySQL 数据库的 PDO_MYSQL DSN

mysql:host=localhost;dbname=testdb
更完整的示例
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

注释

注意: **仅限 Unix:**

当主机名设置为 "localhost" 时,则通过域套接字建立与服务器的连接。如果 PDO_MYSQL 针对 libmysqlclient 进行编译,则套接字文件的位置位于 libmysqlclient 的编译位置。如果 PDO_MYSQL 针对 mysqlnd 进行编译,则可以通过 pdo_mysql.default_socket 设置来设置默认套接字。

添加注释

用户贡献的注释 3 个注释

codeslinger at compsalot dot com
15 年前
我测试了这一点,发现 "dbname" 字段是可选的。如果您必须先创建数据库,这是一件好事。

创建数据库后,请确保执行 "use dbname;" 命令,否则使用完全限定的表引用。
rhian
7 年前
xwisdom 在他的评论中犯了一个错误,颠倒了顺序,更正如下

如果您在访问远程 MYSQL 数据库时遇到问题,解决方法是在 "mysql:" 之后添加一个空格。

更改以下内容...
mysql:host=remote;

... 更改为以下内容
mysql: host=remote;

参见此处原始解决方案
http://stackoverflow.com/a/25432156
divinity76 at gmail dot com
4 年前
这是我个人喜欢的示例,在我看来,这几乎总是 "正确的方式" 来做这件事
<?php

$db
= new \PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password', array(
\PDO::ATTR_EMULATE_PREPARES => false,
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
));
To Top