php mysql pdo 封装类_php pdo封装类实现mysql数据增删查改

define('DSN', 'mysql:host=127.0.0.1;dbname=baozhong_tour'); //数据库地址+数据库名的常量

define('DB_USERNAME', 'root'); //数据库用户名

define('DB_USERPWD', ''); //数据库密码

?>

/**

* @author shuimugan

* @version 0.2

* @return PDOStatement

*/

function getConn() {

try {

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD); //创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //设置数据库错误信息

$db->query('set names utf8;'); //设置编码为utf8

return $db;

}

catch (PDOException $e) {

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

return false;

}

}

/**

* @author shuimugan

* @version 0.2

* @param String $tablename 表名,类型为字符串

* @param Array $column_name 列名,要数组的格式

* @param String $condition 条件,如'where name=? and pws=?'或'name like?'

* @param Array $condition_value 条件对应的数据,类型要求为数组,如'name=? and pws=?' 时,

* @return Array 返回一个结果集 数组形式

* @example $column_name=array('*');

$condition_value=array('1');

$limit='limit 0,10';

$res=easy_select('user', $column_name, 'where id=? ', $condition_value,$limit);

*/

function easy_select($tablename,$column_name,$condition,$condition_value,$limit) {

try {

$db=getConn();

$sql='select ';//初始化sql语句

foreach ($column_name as $col_name) {

//动态追加列名进sql语句

if($col_name=='*'){

$sql.='*';

break;

}

if($col_name==end($column_name))

{

$sql.=$col_name." ";//如果属于最后一个,语句不拼接逗号

}else {

$sql.=$col_name.", ";//拼接列名+逗号

}

}

$sql.="from ".$tablename." ";//拼接表名

$sql.=$condition.' ';//拼接条件语句

if(strlen($limit)>0){

$sql.=$limit;//拼接limit语句

}

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//设置数据库错误信息

$db->query('set names utf8;');//设置编码为utf8

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

$i=1;//开始计数,计算?的数量

$j=count($condition_value);

for (; $i <= $j; ) {

$stmt->bindParam($i, $condition_value[$i-1]);// 绑定参数

$i++;

}

// 查询

$stmt->setFetchMode(PDO::FETCH_ASSOC);//设置通过字段获取数据

$stmt->execute();

// 获取数据

return $stmt->fetchAll();

//return $stmt->rowCount();

} catch (PDOException $e) {

return false;

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

}

}

/**

* @author shuimugan

* @version 0.2

* @param String $tablename 表名,类型为字符串

* @param Array $column_name 列名,要数组的格式

* @param String $condition 条件,如'where name=? and pws=?'或'name like?'

* @param Array $condition_value 条件对应的数据,类型要求为数组,如'name=? and pws=?' 时,

* @return int 返回记录条数

* @example $column_name=array('*');

$condition_value=array('1');

$limit='limit 0,10';

$res=easy_selectCount('user', $column_name, 'where id=? ', $condition_value,$limit);

*/

function easy_selectCount($tablename,$column_name,$condition,$condition_value,$limit) {

try {

$db=getConn();

$sql='select ';//初始化sql语句

foreach ($column_name as $col_name) {

//动态追加列名进sql语句

if($col_name=='*'){

$sql.='*';

break;

}

if($col_name==end($column_name))

{

$sql.=$col_name." ";//如果属于最后一个,语句不拼接逗号

}else {

$sql.=$col_name.", ";//拼接列名+逗号

}

}

$sql.="from ".$tablename." ";//拼接表名

$sql.=$condition.' ';//拼接条件语句

if(strlen($limit)>0){

$sql.=$limit;//拼接limit语句

}

;

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//设置数据库错误信息

$db->query('set names utf8;');//设置编码为utf8

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

$i=1;//开始计数,计算?的数量

$j=count($condition_value);

for (; $i <= $j; ) {

$stmt->bindParam($i, $condition_value[$i-1]);// 绑定参数

$i++;

}

// 查询

//$stmt->setFetchMode(PDO::FETCH_ASSOC);//设置通过字段获取数据

$stmt->execute();

// 获取数据

return $stmt->rowCount();

} catch (PDOException $e) {

return false;

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

}

}

/**

* @author shuimugan

* @version 0.2

* @param String $tablename 表名,类型为字符串

* @param Array $column_name 列名,要数组的格式

* @param Array $column_value 对应的数据,要求数组的格式

* @return int 返回最后自增的id

* @example $column_name=array('pwd','ip','name');

$column_value=array('1246','11.11.11.11','张三');

echo easy_insert('user',$column_name,$column_value);

*/

function easy_insert($tablename,$column_name,$column_value) {

try {

$db=getConn();

$sql='INSERT INTO ';//初始化sql语句

$sql.=$tablename.' (';//拼接表名

foreach ($column_name as $col_name) {

//动态追加列名进sql语句

if($col_name==end($column_name))

{

$sql.=$col_name." )";//如果属于最后一个,拼接右括号

}else {

$sql.=$col_name.", ";//拼接列名+逗号

}

}

$sql.=' VALUES (';//拼接$condition_value语句

for ($i=0; $i < count($column_name); $i++) {//拼接问号?

if ($i==count($column_name)-1) {

$sql.='?) ;';

}else {

$sql.='?,';

}

}

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//设置数据库错误信息

$db->query('set names utf8;');//设置编码为utf8

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

for ($i=1; $i <= count($column_name); $i++) {//拼接问号?

$stmt->bindParam($i, $column_value[$i-1]);

}

// 查询

//echo $sql;

$stmt->setFetchMode(PDO::FETCH_ASSOC);//设置通过字段获取数据

$stmt->execute();

// 获取数据

return $db->lastInsertId();

} catch (PDOException $e) {

return false;

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

}

}

/**

* @author shuimugan

* @version 0.2

* @param String $tablename 表名,类型为字符串

* @param Array $column_name 列名,要数组的格式

* @param Array $column_value 对应的数据,要求数组的格式

* @param String $condition 对应的的where语句 字符串 如 'where id=?'

* @param Array $condition_value 对应where 后面问号的数据 类型要求为数组

* @return int 返回影响的数据行数

* @example $column_name=array('pwd','ip','name');

$column_value=array('123456','127.152.123.132','张三');

$condition_value=array('1');

easy_update('user',$column_name,$column_value,'where id=?',$condition_value,null);

*/

function easy_update($tablename,$column_name,$column_value,$condition,$condition_value,$limit) {

try {

$db=getConn();

$sql='UPDATE ';//初始化sql语句

$sql.=$tablename.' SET ';//拼接表名

foreach ($column_name as $col_name) {

//动态追加列名进sql语句

if($col_name==end($column_name))

{

$sql.=$col_name." = ? ";//如果属于最后一个

}else {

$sql.=$col_name." = ?, ";//拼接列名+逗号

}

}

$sql.=$condition;//拼接条件语句

if(strlen($limit)>0){

$sql.=$limit;//拼接limit语句

}

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//设置数据库错误信息

$db->query('set names utf8;');//设置编码为utf8

$stmt = $db->prepare($sql);//准备语句

$i=1;

$total=count($column_name)+count($condition_value);

for (;$i <= count($column_name);) {

$stmt->bindParam($i, $column_value[$i-1]);//绑定列名对应数据参数

$i++;

}

$j=1;

for (;$i <= $total;) {

$stmt->bindParam($i, $condition_value[$j-1]);//绑定条件对应数据参数

$i++;

$j++;

}

// 查询

$stmt->setFetchMode(PDO::FETCH_ASSOC);//设置通过字段获取数据

$stmt->execute();

// 获取数据

return $stmt->rowCount();

} catch (PDOException $e) {

return false;

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

}

}

/**

* @author shuimugan

* @version 0.2

* @param String $tablename 表命名

* @param String $condition 条件 如 'where id= ?'

* @param Array $condition_value 条件对应的值 就是?对应的值

* @param String $limit 限制语句 如'limit 0,1'

* @return int 返回影响结果数

* @example $condition_value=array('83');

echo easy_delete('user', 'where id=?', $condition_value, null);

*/

function easy_delete($tablename,$condition,$condition_value,$limit) {

try {

$db=getConn();

$sql='DELETE FROM ';//初始化sql语句

$sql.=$tablename.' ';//拼接表名

$sql.=$condition;//拼接条件语句

if(strlen($limit)>0){

$sql.=$limit;//拼接limit语句

}

$db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//创建pdo对象,传入数据库参数信息

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//设置数据库错误信息

$db->query('set names utf8;');//设置编码为utf8

$stmt = $db->prepare($sql);//准备语句

for ($i=1;$i <= count($condition_value);) {

$stmt->bindParam($i, $condition_value[$i-1]);//绑定条件对应数据参数

$i++;

}

// 查询

$stmt->setFetchMode(PDO::FETCH_ASSOC);//设置通过字段获取数据

$stmt->execute();

// 获取数据

return $stmt->rowCount();

} catch (PDOException $e) {

return false;

echo '数据处理出错,请联系网站管理员!';

print_r($e);//超详细的报错信息,上线后必须注释这句话!

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值