PDO

作者: 爱折腾的傻小子 | 来源:发表于2018-10-29 11:02 被阅读0次
# 链接MySQL  - - - - -  示例
$type   = 'mysql';    // 数据库类型
$host   = '127.0.0.1';// 数据库主机名称
$dbName = 'tp5';      // 数据库名称
$user   = 'tp5';      // 数据库连接用户名
$pass   = '123456';   // 数据库连接密码
$dsn    = "{$type}:host={$host};dbname={$dbName}";

// 链接数据库
try{
    $dbh = new \PDO($dsn, $user, $pass);
    echo "连接成功";
    foreach ($dbh->query('SELECT * FROM `tp5_admins` WHERE `admin_id` < 3') as $row){
        print_r($row);
    }
    $dbh = null;
}catch (PDOException $e){
    exit("Error!:".$e->getMessage()."<br>");
}
  • 数据库长连接
# 持久连接在脚本结束后不会被关闭,且被缓存
# 当另一个使用相同凭证的脚本连接请求时被重用
# 持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快
$dbh = new \PDO($dsn, $user, $pass,array(
    PDO::ATTR_PERSISTENT => true  // 请求一个持久链接,并非创建一个新链接
));
  • PDO 事务
# 如果当前数据库不支持抛出异常 PDOExeption 异常 $dbh 链接对象
# 开启事务 beginTransaction() 
$dbh->beginTransaction();
# 提交事务
$dbh->commit();
# 回滚事务
$dbh->rollBack();
  • PDO 预处理进行重复插入
# prepare 方法 - 预处理语句进行重复插入
$stmt = $dbh->prepare(
  "INSERT INTO tp5_admins (email,nick_name) VALUES (:email,:nick_name)"
);
//> bindParam 方法,绑定指定变量到指定参数
$stmt->bindParam(':email',$email);        // 绑定:email <=> $email
$stmt->bindParam(':nick_name',$nick_name);

$email = "loveu@gmail.com";
$nick_name = 'i';
//> 执行 预处理插入语句
$stmt->execute();

# + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
// 预处理语句 使用 ? 占位符  -  无效形式 用于 %?% (无效使用)
$stmt = $dbh->prepare("INSERT INTO tp5_admins (email,nick_name) VALUES (?,?)");
// 使用 如下 这形式绑定
$stmt->bindParam(1,$email);
$stmt->bindParam(2,$nick_name);
$email = "loveu@gmail.com";
$nick_name = 'i';
//> 执行 预处理插入语句
$stmt->execute();

# + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
// 预处理语句
$stmt = $dbh->prepare("INSERT INTO tp5_admins (email,nick_name) VALUES (?,?)");
//> 执行 预处理插入语句 execute 参数
$stmt->execute(array(
        'hexue@gmail.com','keKe'
));

# + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
// 返回一个 PDOStatement 实例对象
$stmt = $dbh->prepare("SELECT * FROM `tp5_admins` WHERE `admin_id` >= :id");
// execute 返回 bool 值:表示是否执行成功
if( $stmt->execute(array(':id'=>104)) ){
    // fetch 执行查询数据
    while ( $row = $stmt->fetch() ){
        print_r($row);
    }
}
PDO 方法
# PDO::quote - 为SQL语句中的字符串添加引号或转移特殊字符串

相关文章

网友评论

      本文标题:PDO

      本文链接:https://www.haomeiwen.com/subject/gbjsbxtx.html