2024年PHP开发者大会日本站

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN连接到MySQL数据库

描述

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

DSN 前缀

DSN 前缀为 mysql:

主机

数据库服务器所在的服务器主机名。

端口

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

数据库名

数据库的名称。

Unix套接字

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
8年前
xwisdom在他的评论中犯了一个错误,并将其颠倒了,更正如下:

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

将此更改…
mysql:host=remote;

…更改为此
mysql: host=remote;

查看原始解决方案:
http://stackoverflow.com/a/25432156
divinity76 at gmail dot com
5年前
这是我自己更喜欢的示例,在我看来,这几乎总是“正确的方法”
<?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