【CI PDO】CI框架下 Mysql PDO 使用方法小记
来源:互联网 发布:企业网站用什么cms 编辑:程序博客网 时间:2024/06/06 00:53
1、设置pdo链接配置信息
my_config.php
$config['mysql_host'] = 'mysql:dbname=test_db;host=127.0.0.1';$config['mysql_username'] = 'root';$config['mysql_passwd'] = '1234';$config['mysql_db'] = 'test_db';$config['dbdriver'] = 'pdo';
database.php
include(APPPATH."config/my_config.php");......$db['default']['hostname'] = $config['mysql_host'];$db['default']['username'] = $config['mysql_username'];$db['default']['password'] = $config['mysql_passwd'];$db['default']['database'] = $config['mysql_db'];$db['default']['dbdriver'] = $config['dbdriver'];
2、手动链接数据库
$this->load->database();
3、常见pdo数据库操作
3.1 查询
// 查询$sql1 = "SELECT * FROM tbl_test1 WHERE condition1 = :condition1 and condition2 = :condition2";$sql_data1 = Array(":condition1" => 1,":condition2" => "abc");$sth1 = $this->db->conn_id->prepare($sql1);$sth1->execute($sql_data1);// 获取一条$result1 = $sth1->fetch(PDO::FETCH_ASSOC);// 获取所有// $result1 = $sth1->fetchAll(PDO::FETCH_ASSOC);// 判断是否成功if($result1){// 查询成功}else{// 查询失败}
3.2 更新
// 更新$sql2 = "UPDATE tbl_test1 SET `key1` = :val1, `key2` = :val2 WHERE condition1 = :condition1 and condition2 = :condition2";$sql_data2 = Array(":val1" => 1,":val2" => "hello",":condition1" => 1,":condition2" => "abc");$sth2 = $this->db->conn_id->prepare($sql2);$sth2->execute($sql_data2);// 判断是否成功if($sth2->rowCount() >0){// 更新成功}else{// 更新失败}
3.3 插入
// 插入$sql3 = "INSERT INTO tbl_test1 (`key1`,`key2`,`key3`,`key4`,`key5`) VALUES ( :val1 , :val2 , :val3 , :val4 , :val5 )";$sql_data3 = Array("val1" => 1,"val2" => "hello","val3" => 100.25,"val4" => "随便写写""val5" => "2015-10-30");$sth3 = $this->db->conn_id->prepare($sql3);$result3 = $sth3->execute($sql_data3);// 判断是否成功if($result3){// 插入成功// 最新插入的数据的自增长id// $this->db->conn_id->lastInsertId();}else{// 插入失败if($sth3->errorCode() == 23000){// 409,需要唯一的字段冲突重复了}else{// 其它}}
3.4 事务
// 事务// 所有select语句都可以在事务开启前操作,即使查询不成功,也不会影响数据的完整性// insert、update、delete相互关联,涉及数据完整性的操作,需要放在事务内部,一旦其中有一个操作失败,就进行事务回滚,以确保事务完整try{// do select here// 关闭 PDO 的自动提交$this->db->conn_id->setAttribute(PDO::ATTR_AUTOCOMMIT, false);// 开启异常处理$this->db->conn_id->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// 开启一个事务$this->db->conn_id->beginTransaction();// do insert、update、delete// insert、update、delete失败的时候抛出异常if($sth2->rowCount() <= 0){throw new PDOException('Update Failed');}// 手动提交$this->db->conn_id->commit();}catch(PDOException $e){// 事务回滚,抛出异常$this->db->conn_id->rollBack();$return = Array("code" => 500,"data" => $e->getMessage());return $return;}
0 0
- 【CI PDO】CI框架下 Mysql PDO 使用方法小记
- CI框架中pdo的使用方法
- CI框架中pdo的使用方法
- CI框架中pdo的使用方法
- CI框架中pdo的使用方法
- 【PHP PDO】纯PHP(不使用框架)下 Mysql PDO 使用方法小记
- CI框架PDO事物回滚
- PDO在CI框架中的使用
- 用CI框架写了简单的pdo单例类
- CI框架简单使用方法
- CI框架简单使用方法
- CI框架简单使用方法
- CI框架百问百答:CodeIgniter的PDO如何设置?--第8问
- 【CI 框架】CI 框架编写 REST API 小记
- CI框架下命名心得
- 【ci框架】ci框架mysql数据库连接资源无法释放
- ci框架
- CI框架
- Activity切换动画
- 用flask做microblog遇到的一些问题
- 浅析MySQL中exists与in的使用
- 16进制表示颜色
- 解决Invalid derived query! No property find found for type XX的问题
- 【CI PDO】CI框架下 Mysql PDO 使用方法小记
- Sensu监控实战
- 跨界面传值
- PHP,一个IP只能访问一次的代码
- Redis五种数据类型介绍
- 帝国CMS灵动标签e:loop的使用
- MyBatis学习1--基础
- 字符串反转reverse.c
- js中几种实用的跨域方法原理详解