pdo mysql dsn_使用PDO构造函数连接数据库及DSN详解

这篇博客详细介绍了如何使用PDO构造函数连接MySQL数据库,包括DSN的组成和使用。通过实例展示了PDO连接数据库的代码,并解释了DSN中各部分的作用,如数据库类型、主机名、端口号和数据库名称。同时,提到了错误处理和不同数据库可能需要指定端口号的情况。
摘要由CSDN通过智能技术生成

58e8d81c4a0d115f2a9f9f245fa77d87.png

PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我...

使用PDO构造函数连接数据库及DSN详解

pdo是php5中新加入的数据库抽象层,为了解决访问不同数据库统一接口的问题。类似于PEAR::DB类和ADODB类的操作,不过它是直接封装再php扩展中,可以自由选择使用。

在上一篇《什么是PDO?PDO的概特点以及安装PDO的方法》中,我们介绍了什么是PDO,介绍了PDO的特点以及安装,那么我们这篇文章介绍PDO构造函数连接数据库以及DSN详情!

PDO构造函数连接数据库

在PDO中,要建立数据库的连接需要实例化 PDO 的构造函数,PDO构造函数的语法格式如下:_construct(string $dsn[,string $username[,string $password[,array $driver_options]]])

构造函数的参数说明如下:

dsn:数据源名称,包括主机名端口号和数据库名称。

username:连接数据库的用户名。

password:连接数据库的密码。

driver_options:连接数据库的其它选项。

那么我们下面直接用实例讲解,通过PDO连接 MySQL 数据库,具体代码如下:<?php

header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式

$dbms = "mysql"; // 数据库的类型

$dbName ="php_cn"; //使用的数据库名称

$user = "root"; //使用的数据库用户名

$pwd = "root"; //使用的数据库密码

$host = "localhost"; //使用的主机名称

$dsn = "$dbms:host=$host;dbName=$dbName ";

try{ //捕获异常

$pdo = new PDO($dsn,$user,$pwd); //实例化对象

echo "PDO连接数据库成功";

}catch (Exception $e){

echo $e->getMessage()."
";

}

页面输出的结果如下图:

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

DSN详解

什么是DSN?

DSN是Data Source Name(数据源名称)的首字母缩写。DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:mysql、sqlite或者pgsql)、冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。

在使用不同的数据库时,必须明确数据库服务器是完全独立与 PHP 的,是实体。但是在实际的情况可能是数据库服务器与 Web服务器不在同一台计算上,此时需要通过PDO连接数据库时,就修改DSN中的主机名称。

由于数据库服务器只是特定的端口上监听连接请求。每种数据库服务器具有一个默认的端口号(MySQL 是3306),但是数据库管理员可以对端口号进行修改,因此有可能 PHP找不到数据库的端口号,此时就可以在 DSN中包含端口号。比如:$dsn="mysql:host=127.0.0.1;port=3306;dbname=admin";

由于一个数据库中可能同时拥有多个数据库,所以通过DSN连接数据库时,通常都包括数据库名称,这样可以确保连接的是用户想要的数据库,而不是其他的数据库了!

关于使用PDO构造函数连接数据库和DSN详解我们就介绍到这里,大家可以在本地测试一下,那么我们下面给大家介绍 PDO中执行SQL语句的几种方法,具体请阅读《PDO中执行SQL语句的三种方法》!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值