PDO预处理
$author = '李白';
$kind = '五言绝句';
$id = '5';
$query = 'SELECT * FROM poetry WHERE author=? AND kind=? AND id>?';//用问号代替要预处理的值
$stmt = $pdo->prepare($query);//开启预处理,将 sql 语句传入
实例代码开始:
$stmt->bindValue(1, $author, [参数3]);//设定 ? 1位置的值
$stmt->bindValue(2, $kind, [参数3]);//设定 ? 2位置的值
$stmt->bindValue(3, $id, [参数3]);//设定 ? 3位置的值
参数3: PDO::PARAM_STR:默认值,字符串类型 通常不写第三个参数
PDO::PARAM_INT:整数类型
$suc = $stmt->execute();//以预处理执行前面传入的 SQL 语句
实例代码结束:
$args = [$author, $kind, $id];
$suc = $stmt->execute($args); 以上绑定方式可简写为此方法
实例代码开始:
$query = 'SELECT * FROM poetry WHERE author=:au AND kind=:ki AND id>:id';
$stmt = $pdo->prepare($query);
$stmt->bindValue(':au', $author);
$stmt->bindValue(':ki', $kind);
$stmt->bindValue(':id', $id);
$suc = $stmt->execute();以上绑定方式也可写为此方法,:au,:ki,:id称为命名占位符
实例代码结束:
$args = [':au'=>$author, ':ki'=>$kind, ':id'=>$id];
$suc = $stmt->execute($args); 以上绑定方式可简写为此方法
$arr = $stmt->fetchAll(PDO::FETCH_ASSOC);//得到全部预处理查询结果,为索引数组
$pdo->beginTransaction();:开启数据库事务机制(开启事务机制的表必须为INNODB)
$pdo->commit();:使事务机制之后的改动生效
$pdo->rollBack();:使事务机制之后的改动回滚
发表评论