转载自 分享
最终编辑 liujijunbd

为了让自己的数据类能够做到最大化的重用,就写个能够重用的PDO操作MySql的类:

由于pdo可以连接现在流行的各种数据库,所以单独的写个配置类类来完成不同数据库DSN的配置:

<?php
/*** 类标准说明    PDO连接数据库的配置类* 类名:     ConfigDataBase* 功能说明:    为了让代码重用,利用此类可以动态的连接各种数据库* 参数说明:    $_dbms = "mysql";    //数据库类型 *         $_host = '127.0.0.1';     //数据库ip地址*         $_port = '3306';     //数据库端口*         $_username = 'root';    //数据库用户名*        $_password = 'liujijun';   //密码*         $_dbname = 'zendf';        //数据库名 默认为zenf*         $_charset = 'utf-8';       //数据库字符编码*         $_dsn;//                    //data soruce name 数据源*** 类属性说明:* 类方法说明:* 返回值:     不同函数返回不同的值* 备注说明:* 作者:       刘纪君* 最后一次修改时间:    2011下午02:01:39**/
class ConfigDataBase {protected static $_dbms = "mysql";    //数据库类型 protected static $_host = '127.0.0.1';     //数据库ip地址protected static $_port = '3306';     //数据库端口protected static $_username = 'root';    //数据库用户名protected static $_password = 'liujijun';   //密码protected static $_dbname = 'zendf';        //数据库名 默认为zenfprotected static $_charset = 'utf-8';       //数据库字符编码protected static $_dsn;//                    //data soruce name 数据源/***@return   返回数据源名*/public static function getDsn() {//将变量的值组合成  mysql:host=localhost;port =3306;dbname=test',$login,$passwd的形式if (!isset(self::$_dsn)){self::$_dsn = self::$_dbms.':host = '.self::$_host.';prot = '.self::$_port . ';dbname = ' . self::$_dbname.','.self::$_username . ','.self::$_password;if (strlen(self::$_charset) > 0){self::$_dsn = self::$_dsn . ';charset = ' . self::$_charset;}}return self::$_dsn;//返回数据源名}/*** 功能:设置$dbms* @param $dbms*/public static function setDbms($dbms){if (isset($dbms) &&(strlen($dbms) > 0 )){self::$_dbms = trim($dbms);} }/**** @param  $host  //数据库地址*/public static function setHost($host){if (isset($host) &&(strlen($host) > 0 )){self::$_host = trim($host);}}/**** @param $host 端口号*/public static function setPort($port){if (isset($port) &&(strlen($port) > 0 )){self::$_post = trim($port);}}/**** @param  $passwd 密码*/public static function setPasswd($passwd){if (isset($passwd) &&(strlen($passwd) > 0 )){self::$_password = trim($passwd);}}/**** @param  $username 用户名*/public static function setUsernName($username){if (isset($username) &&(strlen($username) > 0 )){self::$_username = trim($username);}}/**** @param  $dbname 数据库名*/public static function setDbName($dbname){if (isset($dbname) &&(strlen($dbname) > 0 )){self::$_dbname = trim($dbname);}}/**** @param  $charset 数据库编码*/public static function setCharset($charset){if (isset($charset) &&(strlen($charset) > 0 )){self::$_charset = trim($charset);}}
}下面是对数据库的操作:<?phprequire_once 'ConfigDataBase.php';
header("Content-Type: text/html; charset=utf-8");//设置编码
/*** 类标准说明* 类名:      PdoMysql* 功能说明:     对数据库进行各种操作* 参数说明:* 类属性说明:* 类方法说明:* 返回值:* 备注说明:* 作者:       刘纪君* 最后一次修改时间:    2011上午10:45:36**/
class  PdoMysqlOperater{/*** @return 返回连接数据库的句柄*/public function getConnection(){$connection = NULL;try {$connection = new PDO(ConfigDataBase::getDsn());echo 'Success';} catch (PDOException  $e) {print "Error in connection :".$e->getMessage().' '.die();}return $connection;}/**** @param  $connection    连接数据库的句柄*/public function closeConnection($connection){try {if ($connection != null) {$connection = null;//关闭数据库连接句柄}} catch (Exception $e) {print 'Close the connectin is error:'.$e->getMessage();}}/*** 功能:      向数据库中增加数据* @param $sql      sql语句*/public  function insertDatabase($sql){$affect = false;//失败返回falsetry {$conn = $this->getConnection();$conn->exec($sql);$affect = true;//插入成功返回true$this->closeConnection($conn);//关闭数据库} catch (PDOException $e) {print 'Insert error '.$e->getMessage();}return $affect;//返回值}/**** @param $id      表的主键id* @param $tableName    表名*/public function deleltById($id,$tableName){$affact = false;$sql = 'delete from '.trim($tableName).' where id = '.$id;try {$conn = $this->getConnection();$conn->exec($sql);$this->closeConnection($conn);$affact = true;} catch (PDOException  $e) {print 'Delelte error is '.$e->getMessage();}return $affact;}/*** 功能:      以and 的形式删除记录* @param $tableName    表的名称* @param $array        数组表中字段名=其值的方式进行组合*/public  function prepareDeleteAnd($tableName,array $array=null){$sql = 'delete from '. $tableName . ' where ';$count = count($array);//计算数组的长度$flag = 0;//设置标记foreach ($array as $key => $value){$flag++;//让flag增加一$sql .= $key .'='."'".$value."'";if ($flag != $count ){//当falg不等于count时,数组还有值,后面增加and,反之不增加$sql .= ' and ';}}echo  $sql;//测试sql语句的组合  try {$conn = $this->getConnection();//获取连接$conn->prepare($sql);$this->closeConnection();} catch (PDOException $e) {print 'Delete error is '.$e->getMessage();}}/*** 功能:         以or 的形式删除记录* @param $tableName    表的名称* @param $array        数组表中字段名=其值的方式进行组合*/public  function prepareDeleteOr($tableName,array $array=null){$sql = 'delete from '. $tableName . ' where ';$count = count($array);//计算数组的长度$flag = 0;//设置标记foreach ($array as $key => $value){$flag++;//让flag增加一$sql .= $key .'='."'".$value."'";if ($flag != $count ){//当falg不等于count时,数组还有值,后面增加and,反之不增加$sql .= ' or ';}}echo  $sql;//测试sql语句的组合  try {$conn = $this->getConnection();//获取连接$stmt = $conn->prepare($sql);$stmt->execute();//执行$this->closeConnection();} catch (PDOException $e) {print 'Delete error is '.$e->getMessage();}}/*** 功能:      取得表中所有数据* @param  $sql     sql语句*/public function getAll($sql){$result = null;try {$conn = $this->getConnection();$result = $conn->query($sql);$this->closeConnection($conn);} catch (PDOException $e) {print 'GetAll error is '.$e->getMessage();}}/*** 功能:更新数据表中的信息* @param  $table      要更新的表名* @param array $updateFiled    要更新的字段* @param array $updateConditon 更新需要的条件*/public function updateDataBase($table,array $updateFiled,array $updateConditon ){$sql   = 'update from ' .$table .' set ';//对set字段进行赋值操作$count = count($updateFiled);//获取要修改数组的长度$flag  = 0;//设置标记为0foreach ($updateFiled as $key => $value){$flag++;$sql .= $key .'='."'".$value."'";if ($flag != $count){$sql .=',';}}//对where条件进行赋值$countUpdateCondition = count($updateConditon);//获取要修改数组的长度$flag  = 0;//设置标记为0$sql .= ' where ';foreach ($updateConditon as $key => $value){$flag++;$sql .= $key .'='."'".$value."'";if ($flag != $countUpdateCondition){$sql .=' and ';}}try {$conn = $this->getConnection();$conn->exec($sql);$this->closeConnection($conn);} catch (PDOException $e) {print 'Update error is :'.$e->getMessage();}}/*** 功能:      根据表和提高的查询条件进行查询* 返回值:      返回结果集* @param  $table    数据表名* @param array $findCondition  查询条件*/public function findData($table,array $findCondition){$sql = 'select from '.$table .' where ';$count = count($findCondition);//获取查询条件数组的长度$flag  = 0;//设置标记为0foreach ($findCondition as $key => $value){$flag++;$sql .= $key .'='."'".$value."'";if ($flag != $count){$sql .=' and ';}}try {$conn = $this->getConnection();$conn->exec($sql);$this->closeConnection($conn);} catch (PDOException $e) {print 'find error is :'.$e->getMessage();}}
}
//测试$db = new PdoMysqlOperater();
$db->findData('liujijun',array('name'=>'liujijun','name1'=>'liujijun'));

转载于:https://www.cnblogs.com/c3055/archive/2011/08/24/2152275.html

[share]PDO操作MySql类相关推荐

  1. php使用pdo操作mysql数据库实例_php使用PDO操作MySQL数据库实例_PHP

    本文实例讲述了php使用PDO操作MySQL数据库的方法.分享给大家供大家参考.具体分析如下: PDO是mysql数据库操作的一个公用类,我们不需要进行自定类就可以直接使用pdo来操作数据库,但是在p ...

  2. php使用pdo操作mysql数据库实例_php5使用pdo连接数据库实例

    本文为大家介绍下php pdo的用法. 一,pdo简介 pdo(php data object) 是php 5 中加入的东西,是php 5新加入的一个重大功能,因为在php 5以前的php4/php3 ...

  3. PDO操作MYSQL

    <?php//PDO操作mysql数据库 增删改查//1.准备dsn$mysql_dsn="mysql:host=localhost;dbname=cz;charset=utf8&qu ...

  4. php类模块引擎PDO操作MySQL数据库简单阐述

    PDO是什么呢? 通俗说就是别人写的一个"数据库操作工具类",它非常强大,可以应对市面上几乎所有主流数据库, 具体应用时候有这样一个关系: 即,要操作某种数据,就得去"打 ...

  5. php pdo模仿mysql函数_GitHub - frankie-huang/PDO_MYSQL_MODEL: PHP/PDO操作MySQL行为封装(使用语法仿TP3)...

    PDO_MYSQL_MODEL 文档 更新注记 2017.9.23更新 仿ThinkPHP3.2.3的模型用法进行开发,支持其大部分语法 使用prepare+execute对SQL操作进行预处理,参数 ...

  6. pdo mysql 建库_一帖让PHP小白彻底了解PDO操作数据库的方法

    php与mysql的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) .在这三种方法中,"民间"很多是倾向于使用PDO, ...

  7. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  8. pdo连接mysql数据库(简洁明了)

    一 实例化pdo对象 $dsn = "mysql:dbname=test;host=127.0.0.1"; $pdo = new PDO($dsn,'root','root'); ...

  9. mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险

    当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...

最新文章

  1. 目标检测- YOLO v1--You Only Look Once
  2. 在Android中实现监听 返回键,主键,菜单键
  3. MySQL5.7 版本的安装、配置
  4. OS--进程间通信详解(一)
  5. 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)
  6. c语言源程序文件.c如何保存,急求如何将下列C语言程序数据存储到文件中?
  7. WORD如何将多文档快速汇总到一份WORD文件里面?
  8. java调用libreoffice_使用Open / LibreOffice开始使用UNO和Java
  9. 如何开发油猴脚本来block掘金用户
  10. 变分模态分解 python_Variational Mode Decomposition (变分模态分解)
  11. 纯电动两档箱实际项目模型,本模型基于Cruise软件和搭建完成,本资料包包含所有源文件
  12. ps导出切片批量改名
  13. 运营进阶:产品运营画布九要素
  14. 电脑excel合并单元格怎么拆分开来
  15. 【数据分析可视化】股票市场分析实战之风险分析
  16. 全新的3D采样捕捉工具:Substance 3D Sampler(Sa) mac中文版
  17. 2013NET笔试题及答案
  18. 满爷的2019年终总结: 趋势、反思及展望
  19. 【Docker系列】docker manifest
  20. h5 微信分享和踩坑指南

热门文章

  1. Vue3有哪些不向下兼容的改变
  2. 【嵌入式Linux驱动入门】二、上手Hello驱动,了解驱动开发流程
  3. 海上垂直无人机垂直起降平台
  4. VC实现二维码(qrcode)编码源码
  5. nextdate函数白盒测试问题 软件测试_NextDate函数测试用例 -
  6. 使用Sigar在不同操作系统遇到的坑
  7. 100种思维模型之那什均衡思维模型-038
  8. 【计算机网络】计算机网络-分组发送相关计算
  9. QQ登录获取unionID
  10. python-实现保留3位有效数字(四舍六入五成双规则)