PDO的基础
来源:互联网 发布:数据库第一范式 编辑:程序博客网 时间:2024/05/16 09:39
一:为什么选择PDO
PDO提供了一个数据访问抽象层,意味着无论使用哪种数据库都可以用同样的函数进行查询获取数据
提高了运行效率(这个暂时没有什么深入了解)
二:查看是否支持PDO(phpinfo())
三:以Mysql来做实例
可以在http://php.net/manual/zh/book.pdo.php中查看对应的方法
首先创建一个数据库连接的PDO实例
PDO::__construct (string $dsn
[, string $username
[, string$password
[, array$driver_options
]]] ) 可以放在try catch中
dsn一个DSN的PDO驱动名、紧随其后的冒号、以及具体PDO驱动链接语法组成
username 用户名
password用户密码
driver_options一个具体驱动的连接选项的键=>值数组
$pdo = new PDO('mysql:dbname=mytest;host=localhost','root','');
执行简单的查询:对于不返回结果的查询(insert update delete)使用exec()方法,它使用需要执行的语句作为参数
$name = "name2";
$sex = 'man';
$insert = sprintf("INSERT INTO mytest(name,sex) VALUES('%s','%s');",$name,$sex); //可以防止SQL注入
$pdo->exec($insert);
$id = $pdo->lastInsertId(); //查看插入操作动态生成的主键值
为了防止SQL注入,可以将字符串放入到PDO的quote()方法
$data = $pdo->quote($unsafe_data);
$pdo->exec("insert into tableN(colum) values($data)";
对于返回值的select操作使用query操作 $result = $pdo->query($insertQ); 查看返回记录个数使用$result->rowCount()
$select = $pdo->query('select name,sex from mytest');var_dump($select);
$select->setFetchMode(PDO::FETCH_NUM); //
while($row = $select->fetch()){
print $row[0] . "\t" . $row[1] ;
}
四:也可以使用prepare预定义语句,同时因为这个方式查询语句和数据分开传送就不需要防范SQl注入攻击
$selectQuery = 'SELECT name, sex FROM mytest WHERE name = :name AND sex = :sex';
$sth = $pdo->prepare($selectQuery);
$sth->execute(array(':name' => 'name12', ':sex' => 'man'));
$users = $sth->fetchAll();
- PDO的基础
- PDO基础操作的封装
- PHP中PDO的基础应用实例
- PHP中PDO的基础使用实例
- PHP PDO 基础
- PHP PDO 基础
- PDO基础操作Mysql
- PHP PDO基础
- 基础级-PDO
- php 基础之PDO
- PDO基础操作
- PDO基础操作类的封装第2版
- PDO及PDO -> prepare的简单使用
- PDO及PDO -> prepare的简单使用
- [PHP]PDO的使用
- PDO 的事务处理
- PDO的基本用法
- pdo的背景
- mac部署electron过程
- EXTJS如何把Label的值设置为后台加载出来的内容?
- PHP 命名空间
- 关于unity中的update、Lateupdate和FixedUpdate。
- Android开发实用工具类之Log类
- PDO的基础
- SceneKit一个加载3D模型的神奇框架
- eclipse后台学习日记(配置篇)
- Swift3.0中GCD定时器的使用
- fastjson-err
- Java堆、栈和常量池以及相关String的详细讲解
- mysql忽略大小写,lower_case_table_names配置
- Python-struct.error: argument for 's' must be a bytes object
- 研究一下JS的转型函数