php页面显示数据连接失败,PHP提示数据库打开失败,php连接数据库失败

Q4:如何使用PHP数据对象(PDO)扩展连接操作数据库?

所谓的PDO,就是php中内嵌的一个数据对象。不论什么类型的数据库连接,都可初始化为一个PDO对象,然后再使用该对象中所定义的各种方法来查询和获取数据,这样就为不同的数据库定义了一个轻量级的一致接口。

该功能自php5.1版本开始使用,但并不是每个版本默认都开通了的。现以目前使用最广泛的两个php版本为例:

在5.6版本中,php_pdo_odbc是作为扩展功能提供的。如果不选择使用此扩展,odbc方式连接正常,但以odbc方式初始化一个pdo对象时就会出错。使用phpinfo()查看,如下图:

在7.0版本中,情况完全与5.6相反:php_pdo_odbc默认就是开通的,obdc却被关闭。

当然,如果你仅仅只是要通过PDO连接MySQL数据库,就无需关注上述问题。只有在连接MySQL之外的其它数据库时才需关注上述扩展的开通情况,比如Access、MSSQL之类。

下面重点说一下如何通过PDO连接不同的数据库。

一般情况下,我在php中连接MySQL数据库时喜欢使用mysqli_connect函数,连接微软系列数据库时喜欢使用odbc_connect函数。为了后期的数据统一操作,它们都可以改用pdo方式连接:该方式其实就是将各种不同类型的数据库连接,都初始化为一个PDO对象,然后再使用该对象中所定义的各种方法来查询和获取数据。初始化对象时,如果有任何的连接错误,都将抛出一个PDOException异常对象,我们还可以据此获取相关的错误信息。

例如,通过pdo创建mysql的数据库连接:

try {

$link = new PDO(mysql:host=localW&WW.ecAibEi.CoMhost;dbname=test,root,);

} catch (PDOException $e) {

$str = 连接失败!错误信息: .$e->getMessage();

exit($str);

}

echo 数据库连接成功!;

如果要连接MSSQL,可将$link改为:

$link = new PDO(odbc:Driver={SQL Server};Server=.\sqlexpress;database=gz,sa,123456);

很显然,不论什么数据库的连接,当创建PDO对象时,都少不了以下三个参数:第一个参数是dsn,用于指定驱动程序及数据库;第二个参数是用户名;第三个参数是密码。连接Access或Excel同理。

例如,以下就是连接的Access:

$file = realpath(data.mdb);

$link = new PDO(odbc:Driver={Microsoft Access Driver (*.mdb)};dbq=.$file,,);

以下是连接Excel文件的:

$file = realpath(data.xls);

$link = new PDO(odbc:Driver={Microsoft Excel Driver (*.xls)};dbq=.$file,,);

以上用户名、密码参数为空时,也可直接省略,只写第一个参数就行。

PDO对象创建之后,就可以使用该对象中的方法来获取数据或更新数据了。既然题主问的是如何连接,此回答就到此为止。

我是人民邮电出版社签约作者,最近写的一本书《B/S项目开发实战》中就详细讲解了PDO操作数据库的具体方法,甚至连中文数据表、中文字段的问题都进行了详细说明。如对此类问题有兴趣,请关注我一起交流提高,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值