在php使用PDO类查询Mysql_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在php使用PDO类查询Mysql_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4029字,纯文字阅读大概需要6分钟。
内容图文
![在php使用PDO类查询Mysql_PHP教程](/upload/InfoBanner/zyjiaocheng/178/fd8ab5c7ab524f56b5632ffba0305bce.jpg)
1、PDO介绍
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用,无法运行于之前的PHP版本。与mysql和mysqli相比起来,PDO让跨数据库的使用更具有亲和力。
2、PDO的安装与配置
在php5.2.10中,php默认已经安装了pdo。
打开php.ini文件,找到extension=php_pdo.dll这一句,去掉前面的注释符号,然后重启apache即可。如果没有找到这句,可以自己添加一句或者查看系统在安装的时候是否采用了动态链接库文件.so,如果是的话,可以在php目录下找到一个conf.d的文件夹,下面有一个pdo.ini的链接文件,如果里面有一句extension=pdo.so说明已经开启了PDO。
验证一下PHP是否已经开启了PDO,首先写一个脚本,内容是
如果显示的结果中有如下内容,说明已经开启了PDO扩展。
3、创建一个PDO对象
__construct(string dsn[,string username [,string password [, array driver_options]]]);//pdo的构造方法参数解析:第一个必选参数是数据源名DSN,用来定义一个确定的数据库和必须用到的驱动程序。
如,连接oracle服务器和mysql服务器的DSN格式分别如下所示:
ocl:dbname=//127.0.0.1:1521/mydb //连接oracle服务器的dsn,oci:作为驱动前缀,主机127.0.0.1,端口1521,数据库mydb
mysql:host=127.0.0.1;dbname=testdb //连接Mysql服务器的dsn,mysql:作为驱动前缀,主机127.0.0.1,数据库testdb
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'root'; $password = 'root'; try { $dbh = new PDO($dsn, $user, $password); }catch(PDOException $e) { echo "connect failed: ".$e->getMessage(); }
4、PDO设置属性
1) PDO有三种错误处理方式:
? PDO::ERrmODE_SILENT不显示错误信息,只设置错误码
? PDO::ERrmODE_WARNING显示警告错
? PDO::ERrmODE_EXCEPTION抛出异常
可通过以下语句来设置错误处理方式为抛出异常
$dbh->setAttribute(PDO::ATTR_ERrmODE, PDO::ERrmODE_EXCEPTION);当设置为PDO::ERrmODE_SILENT时可以通过调用errorCode() 或errorInfo()来获得错误信息,当然其他情况下也可以。
2) 因为不同数据库对返回的字段名称大小写处理不同,所以PDO提供了PDO::ATTR_CASE设置项(包括PDO::CASE_LOWER,PDO::CASE_NATURAL,PDO::CASE_UPPER),来确定返回的字段名称的大小写。
3) 通过设置PDO::ATTR_ORACLE_NULLS类型(包括PDO::NULL_NATURAL,PDO::NULL_EmpTY_STRING,PDO::NULL_TO_STRING)来指定数据库返回的NULL值在php中对应的数值。
5、PDO常用方法及其应用
PDO::query() 主要是用于有记录结果返回的操作,特别是SELECT操作
PDO::exec() 主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作
PDO::prepare() 主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大(防止sql注入就靠这个)
PDO::lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID
PDOStatement::fetch() 是用来获取一条记录
PDOStatement::fetchAll() 是获取所有记录集到一个集合
PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段
PDOStatement::rowCount() :主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。
6、PDO操作MYSQL数据库实例
$sql = "UPDATE article SET title="haha" WHERE id=1"; $affected = $dbh->exec($query); if($affected) { echo "successed"; }else { print_r($dbh->errorINdo()); }
预处理方式:
$SQLStatament = "INSERT INTO article VALUES(":title, :content")"; $param = array(":title" => "something", ":content" => "aaaa"); //准备的参数,对应数据库的字段 $stmt = $dbh->prepare($SQLStatement); $stmt->execute($param);
http://www.bkjia.com/PHPjc/621626.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/621626.htmlTechArticle在我的PHP开发过程中,数据库的采用都是使用mysql数据库,与数据库有关的操作基本上都是使用php中的mysql扩展函数,例如mysql_query,mysql_co...
内容总结
以上是互联网集市为您收集整理的在php使用PDO类查询Mysql_PHP教程全部内容,希望文章能够帮你解决在php使用PDO类查询Mysql_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。