PDO连接数据库及DSN详解

Posted diligentyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDO连接数据库及DSN详解相关的知识,希望对你有一定的参考价值。

PDO构造函数
    在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,PDO构造函数的语法如下:
__construct(string $dsn[,string $username[,string $password[,array $driver_options]]])
参数说明如下
dsn:数据源名,包括主机名,端口号和数据库名称。
username:连接数据库的用户名
password:连接数据库的密码
driver_options:连接数据库的其他选项
例如:


$dbms='mysql';
$dbName='admin';
$user='root';
$pwd='password';
$host='localhost';
$dsn="$dbms:host=$host;dbname=$dbName";
try{
    $pdo=new PDO($dsn,$user,$pwd);
    echo "PDO连接MySQL成功";
}catch(Exception $e){
    echo $e->getMessage().'<br>';
}

运行结果为:
PDO连接MySQL成功 

如果上面有的地方填错了,会通过try catch语句抛出异常


DSN详解
    DSN是Data Source Name(数据源名称)的首字母缩写。DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:mysql、sqlite或者pgsql)、冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。
    实际中有一些数据库服务器可能与web服务器不在同一台计算机上,则需要修改DSN中的主机名称。
由于数据库服务器只在特定的端口上监听连接请求,故每种数据库服务器具有一个默认的端口号(MySQL是3306),但是数据库管理员可以对端口号进行修改,因此有可能php找不到数据库的端口号,此时就可以在DSN中包含端口号。
例如:
$dsn="mysql:host=127.0.0.1;port=3306;dbname=admin";

另外,由于一个数据库服务器中可能拥有多个数据库,所以在通过DSN连接数据库时,通常都包括数据库名称,这样可以确保连接的

是用户想要的数据库,而不是其他数据库。

以上是关于PDO连接数据库及DSN详解的主要内容,如果未能解决你的问题,请参考以下文章

pdo的简单介绍和使用

封装PDO连接数据库代码

php pdo学习笔记

pdo连接数据库

PDO相关函数

PDO抽象层访问