PDO 增删改查
来源:互联网 发布:mac office2016密钥 编辑:程序博客网 时间:2024/06/05 13:23
Selecting Data
你在mysql_*中是这样做的
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
你在pdo中可以这个样
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
或者
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
提示:如果你使用了方法像query()。这个方法返回一个PDOStatement 对象,如果你想取出结果,请这样使用:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
PDO数据是通过->fetch() 方法获得的,这个方法是你的statement处理的。
在fetch之前。最好告诉PDO这个数据你打算怎么fetch。在下个章节我会解释。
Fetch Modes
PDO::FETCH_ASSOC 可以在fetch() 和 fetchAll()中使用。 这个告诉PDO返回关联数组,字段的名字作为key。这还有很多fench方法。
首先我说明怎么选择fench 模式。
- 1
- 1
在这里我用的是fetch,你也可以用:
- PDOStatement::fetchAll() 返回了一个数组包含了所有选择的行
- PDOStatement::fetchColumn() 返回下一行的一列作为结果集
- PDOStatement::fetchObject() 返回下一行作为一个对象
- PDOStatement::setFetchMode() 设置fetch模式
下面讨论fetch模式
- PDO::FETCH_ASSOC 关联数组
- PDO::FETCH_BOTH 默认的。返回关联数组和索引数组。
还有更多选项,可以阅读文档。
获取行的数量
不是通过mysql_num_rows 而是通过rowCount(),比如说:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
获取插入的id
- 1
- 2
- 3
- 1
- 2
- 3
Insert and Update or Delete statements
在mysql_*中我们是这样做的
- 1
- 2
- 3
- 1
- 2
- 3
在PDO中,同样可以这样:
- 1
- 2
- 3
- 1
- 2
- 3
在上面的语句中,执行了一个sql语句并且返回受影响的行数。
上面的方法在你查询语句中没有变量时很好用。如果有变量,就应该使用 prepared statement or parameterized statement 。
Prepared Statements
Q:什么是 Prepared Statements,我为什么要用他?
A:Prepared Statement 是一条预编译的sql语句,可以被执行多次。
典型的使用Prepared Statement 工作流:
- Prepare: 语句(statement)模版被application创建,发送到数据库管理系统(DBMS)。某些值仍然违背置顶,通过参数、占位符进行绑定
- 1
- 1
DBMS进行解析、编译,得到最优的语句,把结果(语句)储存起来,并不执行。
执行。过后,程序为参数提供或绑定值,DBMS执行语句(一般会返回一个结果)。程序或许会执行多次因为它有不同的值,想获得不同的结果。咱这个例子里,把Bread作为第一个参数,1.00作为第二个参数。
你可以通过引入占位符使用预编译语句。
Q:什么是命名占位符(named placeholders ),怎么使用呢?
A:命名占位符,用过一个冒号而不是? 这样就不用去操心问号的顺序问题了
- 1
- 1
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
另一个对于OOP(面向对象编程)很友好的就是,命名占位符可以直接插入到你的对象,再然后加入到你的数据库。假设属性与字段相同
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
Q:好了,什么是匿名占位符(unnamed placeholders),怎么使用?
A:看个例子。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 1
- 2
注意:在匿名占位符我们一定要注意在数组中的顺序,在PDOStatement::execute() 方法中。
SELECT, INSERT, UPDATE, DELETE prepared queries
- select
- 1
- 2
- 3
- 1
- 2
- 3
- insert
- 1
- 2
- 3
- 1
- 2
- 3
- delete
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- update
- 1
- 2
- 3
- 1
- 2
- 3
注意:
PDO和Mysqli也不是完全的安全。有机会会翻译一遍这个文章,这里就简单说一下:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
转载自 http://blog.csdn.net/gusgao/article/details/52229881
- PDO 增删改查
- pdo 增删改查
- PDO 增删改查
- PDO分装类实现增删改查
- pdo增删查改事务及预处理
- J PHP增删改查pdo
- PDO增删查改操作类【基础操作一】
- php 操作sqlite类。增删改查,pdo链接
- PDO实现用户数据的增删改查
- php小案例PDO增删改查,菜鸟好工具
- PHP PDO 增删查改,表锁,返回新增ID
- [实例]php中PDO方式实现数据库的增删改查
- PDO对象的使用 (实现增删改查,输出错误等)
- 【末世旅行之PHP】PHP用PDO连接MySQL数据库工具类-增删改查
- 数据库操作类采用PDO形式完成基本增删改查
- hibernate增删查改
- XML 增删查改
- ldap 增删改查
- 注册并使用微信公众账号
- OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
- synchronized 关键字
- App测试1
- H
- PDO 增删改查
- kafka无法正常生产消费,但依旧可以创建生产者和消费者
- Quartz Cron表达式 每周、每月执行一次
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- php中查询数据库含通配符时需要转义的问题
- C++实践积累
- LightOJ
- Linux下修改Mysql数据库存放路径
- Windows下Android app压力测试学习笔记