- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PHP连接MySQL数据库三种实现⽅法
引⾔
PHP与MySQL的连接有三种API接⼝,分别是:PHP的MySQL扩展、PHP的mysqli扩展、PHP数据对象(PDO),下⾯针对以
上三种连接⽅式做下总结,以备在不同场景下选出最优⽅案。
PHP的MySQL扩展是设计开发允许php应⽤与MySQL数据库交互的早期扩展。MySQL扩展提供了⼀个⾯向过程的接⼝,并且是
针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进⾏交互,但并不⽀持后
期MySQL服务端提供的⼀些特性。由于太古⽼,⼜不安全,所以已被后来的mysqli完全取代;
PHP的mysqli扩展,我们有时称之为MySQL增强扩展,可以⽤于使⽤MySQL4.1.3或更新版本中新的⾼级特性。其特点为:⾯
向对象接⼝、prepared语句⽀持、多语句执⾏⽀持、事务⽀持、增强的调试能⼒、嵌⼊式服务⽀持、预处理⽅式完全解决了
sql注⼊的问题。不过其也有缺点,就是只⽀持mysql数据库。如果你要是不操作其他的数据库,这⽆疑是最好的选择。
PDO是PHPDataObjects的缩写,是PHP应⽤中的⼀个数据库抽象层规范。PDO提供了⼀个统⼀的API接⼝可以使得你的PHP
应⽤不去关⼼具体要连接的数据库服务器系统类型,也就是说,如果你使⽤PDO的API,可以在任何需要的时候⽆缝切换数据库
服务器,⽐如从Oracle到MySQL,仅仅需要修改很少的PHP代码。其功能类似于JDBC、ODBC、DBI之类接⼝。同样,其也
解决了sql注⼊问题,有很好的安全性。不过他也有缺点,某些多语句执⾏查询不⽀持(不过该情况很少)。
代码⽰例
PHP与Mysql扩展(本扩展⾃PHP5.5.0起已废弃,并在将来会被移除),PHP原⽣的⽅式去连接数据库,是⾯向过程的
$mysql_conf=array(
host=127.0.0.1:3306,
db=test,
db_user=root,
db_pwd=root,
);
$mysql_conn=@mysql_connect($mysql_conf[host],$mysql_conf[db_user],$mysql_conf[db_pwd]);
if(!$mysql_conn){
die(couldnotconnecttothedatabase:\n.mysql_error());//诊断连接错误
}
mysql_query(setnamesutf8);//编码转化
$select_db=mysql_select_db($mysql_conf[db]);
if(!$select_db){
die(couldnotconnecttothedb:\n.mysql_error());
}
$sql=select*fromuser;;
$res=mysql_query($sql);
if(!$res){
die(couldgettheres:\n.mysql_error());
}
while($row=mysql_fetch_assoc($res)){
print_r($row);
}
mysql_close($mysql_conn);
PHP与Mysqli扩展,⾯向过程、对象
?php
$mysql_conf=array(
host=127.0.0.1:3306,
db=test,
db_user=root,
db_pwd=joshua317,
);
$mysqli=@newmysqli($mysql_conf[host],$mysql_conf[db_user],$mysql_conf[db_pwd]);
if($mysqli-connect_errno){
die(couldnotconnecttothedatabase:\n.$mysqli-connect_error);//诊断连接错误
}
$mysqli-query(setnamesutf8;);//编码转化
$select_db=$mysqli-select_db($mysql_conf[db]);
if(!$select_db){
d
文档评论(0)