MySQL + PDO 操作

PDO扩展

注意:这里面有的的是伪代码,不可以执行

PDO连接MySQL

# 基本格式(mysql驱动,主机名,数据库名,数据库用户名,数据库密码)
$pdo = new PDO('mysql:host=your_hostname;dbname=yourdbname;', 'your_username', 'your_password');
# 例子
$pdo = new PDO('mysql:host=localhost;dbname=test;', 'root', '123456');

PDO对象

基本方法

$PDOStatment = query(); // 基本上query是用来操作select语句的,返回stmt对象
foreach ($conn->query($sql, PDO::FETCH_ASSOC) as $row) { // foreach遍历数据,尽量不要使用
    var_dump($row);
}

$affected_rows = exec(); // 基本上exec是用来操作insert, update, delete语句的,返回影响行数
lastinsertid

prepare($sql); // 返回PDOStatment对象

事务处理

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置错误异常
setAttribute(PDO::ATTR_AUTOCOMMIT, 0); // 把 MySQL 的自动提交关闭
try {
    beginTrasaction(); // 开启事务
    if (...) {
        throw new PDOException('...'); // 抛出异常
    }
    commit(); //提交事务
} cache (PDOException $e) {
    roolBack(); // 回滚事务
}
setAttribute(PDO::ATTR_AUTOCOMMIT, 1); // 把 MySQL 的自动提交打开

PDOStatment对象

基本方法

bindValue(); // 参数绑定, 参数形式 (1, $value) 或 (':...', $value)
bindParam(); // 参数绑定,参数形式与上面相同,但是只在excute()执行的时候被调用

bindColumn(); // 数据绑定给自定义变量,用于结果集的输出

execute(); // 参数为可选,若前面用了 bindValue 或 bindParam 绑定就不需要参数,若没有则execute()参数有两种形式,array('', ,)和array(':'=>'', ,)

$stmt->rowCount(); // INSERT, UPDATE, DELETE 影响行数
$stmt->columnCount(); // 返回结果集中的列数

$row = $stmt->fetch(PDO::FETCH_ASSOC); // 返回查询到的记录,若为空则返回 false,可结合 while 语句进行遍历
fetchAll(); // 获取所有记录
fetchColumn($num); // 获取单独的列

closeCursor(); // 关闭游标,重新执行一次语句

PDOException对象

使用方法

try {
    $PDO = new PDO( '...' ); // PDO Driver DSN. Throws A PDOException.
}
catch( PDOException $Exception ) {
    // Note The Typecast To An Integer!
    echo $Exception->getMessage() , (int)$Exception->getCode();
}

你可能感兴趣的:(MySQL,PHP)