您的位置:首页 > 其它

CI框架中pdo的使用方法

2015-08-03 16:55 387 查看
1、配置

application/config文件夹下的database.php文件
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'mysql:hostname=localhost;dbname=myproject';
$db['default']['username'] = 'myproject';
$db['default']['password'] = 'myproject';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


2、使用方法

手动加载数据库

$this->load->database()

自动加载数据库

application/config文件夹下的autoload.php文件

$autoload['libraries'] = array('database');


select :

$sql = 'select * from aaa where id = :id';
$sql_array = array(
':id' => 1
);
$stmt = $this->db->conn_id->prepare($sql);
$stmt->execute($sql_array);
$arr_user = $stmt->fetchAll(PDO::FETCH_ASSOC); //返回一个包含结果集中所有行的数组,相当于mysql中的result_array
$str_user = $stmt->fetch(PDO::FETCH_ASSOC); //从结果集中获取下一行,相当于mysql中的row_array


获取查询结果总行数两种方法:(第二种更有效率)
(1)、$Count_num = count($arr_user);

(2)、
$sql = 'select * from aaa where id = :id';
$sql_array = array(
':id' => 1
);
$stmt = $this->db->conn_id->prepare($sql);
$stmt->execute($sql_array);
$str_user = $stmt->fetch(PDO::FETCH_ASSOC);
$Count_num = $str_user[0];


判断查询是否成功:

$stmt->execute($sql_array); //这句语句会返回true或者false,代表查询是否成功


insert 、update、delete :

除了sql语句语法不同,查询的方法是一样的

$sql = "update aaa SET status = -1 WHERE id= :id";
$sql = "INSERT INTO aaa(`id`) VALUES ( :id)";
$sql = "delete from aaa where id= :id";

$sql_array = array(
':id' => 1
);
$stmt = $this->db->conn_id->prepare($sql);
$stmt->execute($sql_array);


判断查询是否成功:

$stmt->rowCount();
if($stmt->rowCount()>0){
//查询成功
}else{
//查询失败
}


另外,insert的时候,有时候需要返回insert_id

pdo中的写法是 $stmt->lastInsertId();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: