如果需要使用pdo_mysql来操作mysql数据首先需要开启pdo_mysql扩展,linux上和windows上开启扩展的方式不同,这里暂时不讲解如何开启扩展,直接上例子
pdo_mysql需要实例化PDO对象
构造方法中有4个参数:
$dsn:Data Source Name 数据源名称,需要的数据来源的描述
$username:数据库用户名
$password:数据库密码
$driver_options:驱动选项,对应当前数据库服务器中一些特定的初始化工作
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=php'; $username = 'root'; $password = 'admin'; $driver_options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES UTF8',); $pdo = new PDO($dsn,$username,$password,$driver_options);
发送SQL到服务器,等待返回结果
PDO初始化完成就以为这已经连接到数据库,接下来要做的就是通过SQL进行数据库操作。
$sql = "show databases"; $result = $pdo->query($sql);
得到结果,处理结果
返回的结果被PDOStatement
类对象管理,返回的结果会自动封装为该对象,这里我们使用这个对象中fetchAll()
方法来展示查询到的所有结果,默认返回关联性索引集合,如果需要返回数值型索引,传入PDO::FETCH_NUM
$list = $result->fetchAll(PDO::FETCH_NUM);
PDO对象中的常用方法
1.errorInfo()和errorCode():获取错误信息。
if(!$result = $pdo->query("show databases")){ //错误信息 var_dump($pdo->errorInfo()); //错误代码 var_dump($pdo->errorCode()); }
2.beginTransaction():开始事务
3.rollback():回滚事务
4.commit():提交事务
5.inTransaction():判断是否处于事务中
6.lastInsertID(): 获取最后形成的auto_increment字段的值
7.Exec():又一个执行SQL的方法,区别于query(),返回值类型不同。Exec()返回值类型为整型(表示当前所执行SQL所影响的记录数,用于非查询类),query()返回对象(用于执行查询类)