php pdo 单条,PDO函数封装:连接 新增 更新 单条查询 多条查询 删除操作进行封装—4月26日作业...

实例

/** PDO数据库操作函数库 **/

//连接数据库

if (!function_exists('connect'))//检测connect函数是否存在(或被定义)是继续执行

{

/**

* 连接数据库

* @param  [type] $dbname

* @param  string $type

* @param  string $host

* @param  string $charset

* @param  integer $post

* @param  string $user

* @param  string $pass

* @return [type] PDO

*/

function connect($dbname,$type='mysql',$host='127.0.0.1',$charset='utf8',$port=3306,$user='root',$pass='root')

{

$dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";//数据源

$userName = $user; //数据库用户名

$password = $pass; //数据库用户密码

//配置连接属性

$options = [

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,  //设置错误模式

PDO::ATTR_CASE => PDO::CASE_NATURAL,  //数据表字段保持不变

PDO::ATTR_EMULATE_PREPARES => true, //启用PDO模拟

PDO::ATTR_PERSISTENT => true, //启用持久性连接

];

try {

//实例化PDO类,创建PDO对象

$pdo = new PDO($dsn, $userName, $password, $options);

} catch (PDOException $e) {

die('Connect ERROR!:'.$e->getMessage());

}

return $pdo;

}

}

//新增数据

if (!function_exists('insert'))

{

/**

* [insert description]

* @param  [type] $pdo

* @param  [type] $table

* @param  array  $data

* @return [type] bool

*/

function insert($pdo,$table,$data=[])

{

//创建SQL语句

$sql = "INSERT IGNORE {$table} SET ";

//foreach()方法用于调用数组的每个元素,并将元素传递给回调函数

//循环迭代,$data数组元素的值就会被赋值给 $field变量,并且数组指针会逐一地移动,直到最后一个数组元素。

foreach (array_keys($data) as $field) {

$sql .= $field. '=:'.$field.',';

}

//去掉尾部的逗号,并添加分号结束

$sql = rtrim(trim($sql),',').';';

// die($sql);//测试

//创建PDO预处理对象

$stmt = $pdo->prepare($sql);

//绑定参数到预处理对象

foreach ($data as $field => $value) {

$stmt->bindValue(":{$field}",$value);

}

//执行新增操作

if ($stmt->execute()) {

if ($stmt->rowCount() > 0) {

return true;

}

} else {

return false;

}

}

}

//更新数据

if (!function_exists('update'))

{

/**

* 更新数据

* @param  [type] $pdo   [description]

* @param  [type] $table [description]

* @param  array  $data  [description]

* @param  string $where [description]

* @return [type]        [description]

*/

function update($pdo,$table,$data=[],$where='')

{

//创建SQL语句

$sql = "UPDATE {$table} SET ";

foreach (array_keys($data) as $field) {

$sql .= $field.'=:'.$field.', ';

}

//rtrim() 函数移除字符串右侧的空白字符或其他预定义字符。

//去掉尾部逗号,并添加分号结束

$sql = rtrim(trim($sql),',');

// die($sql); 测试用

//添加更新条件

if(!empty($where)) {

$sql .= ' WHERE '. $where;

}else{

exit('条件不能为空');

}

//创建PDO预处理对象

$stmt = $pdo->prepare($sql);

//绑定参数到预处理语句

foreach ($data as $field => $value) {

$stmt->bindValue(":{$field}",$value);

}

//执行更新操作

if ($stmt->execute()) {

//rowCount()方法获取sql查询返回结果记录总条数

if ($stmt->rowCount() > 0) {

return true;

}

} else {

return false;

}

}

}

//查询单条数据

if (!function_exists('find'))

{

/**

* 查询单条数据

* @param  [type] $pdo    [description]

* @param  [type] $table  [description]

* @param  [type] $fields [description]

* @param  string $where  [description]

* @return [type] bool    [description]

*/

function find($pdo,$table,$fields,$where='')

{

//创建SQL语句

$sql = "SELECT ";

if (is_array($fields)) {

foreach ($fields as $field) {

$sql .= $field.', ';

}

} else {

$sql .= $fields;

}

//去掉$fieds后面的逗号

$sql = rtrim(trim($sql),',');

$sql .= ' FROM '.$table;

//添加查询条件

if(!empty($where)) {

$sql .= '  WHERE '. $where;

}

$sql .= '  LIMIT 1';

//去掉尾部逗号,并添加分号结束

$sql = rtrim(trim($sql),',').';';

//创建PDO预处理对象

$stmt = $pdo->prepare($sql);

//执行查询操作

if($stmt->execute()){

if($stmt->rowCount()>0){

$stmt->setFetchMode(PDO::FETCH_ASSOC);

return $stmt->fetch();

}

} else {

return false;

}

}

}

//查询多条数据

if(!function_exists('select'))

{

/**

* 查询多条数据

* @param  [type] $pdo    [description]

* @param  [type] $table  [description]

* @param  [type] $fields [description]

* @param  string $where  [description]

* @param  string $order  [description]

* @return [type]         [description]

*/

function select($pdo,$table,$fields,$where='',$order='') {

//创建SQL语句

$sql = "SELECT ";

if(is_array($fields)) {

foreach ($fields as $field) {

$sql .= $field.',';

}

} else {

$sql .= $fields;

}

$sql = rtrim(trim($sql),',');

$sql .= "  FROM ". $table;//FROM关键词查询的是数据库中的表名

//添加查询条件

if(!empty($where)) {

$sql .= '  WHERE '. $where;

}

//添加排序条件

if(!empty($order)) {

$sql .= " order by ". $order;

}

//去掉尾部逗号,并添加分号结束

$sql = rtrim(trim($sql),',').';';

//创建PDO预处理对象

$stmt = $pdo->prepare($sql);

//执行查询操作

if($stmt->execute()) {

if($stmt->rowCount() > 0) {

$stmt->setFetchMode(PDO::FETCH_ASSOC);

//返回一个二维数组

return $stmt->fetchAll();

}

} else {

return false;

}

}

}

//删除数据

if(!function_exists('delete'))

{

/**

* 删除数据

* @param  [type] $pdo   [description]

* @param  [type] $table [description]

* @param  string $where [description]

* @return [type]        [description]

*/

function delete($pdo,$table,$where='') {

//创建SQL语句

$sql = "DELETE FROM {$table} ";

//添加删除条件

if(!empty($where)) {

$sql .= ' WHERE '.$where;

} else {

exit('条件不能为空');

}

//去掉尾部的逗号,并添加分号结束

$sql = rtrim(trim($sql,',').';');

//创建PDO预处理对象

$stmt = $pdo->prepare($sql);

//执行删除操作

if($stmt->execute()) {

if($stmt->rowCount()>0) {

return true;

}

} else {

return false;

}

}

}

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值