热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实用PDOMYSQL数库操作类-PHP源码

实用PDOMYSQL数库操作类
配制

'Default',//默认连接
/* 主数据 */
'Default' => 
array (
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => '8now_invoicing', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PREFIX' => '8now_', // 数据库表前缀
'DB_CHARSET' => 'utf8' ), // 数据库编码默认采用utf8
);
&#39;, &#39;>&#39;, &#39;<&#39;, &#39;>=&#39;, &#39;<=&#39; );
    function __construct($db) {
        $dbmysql = include ROOT_CONFIG . &#39;db.php&#39;;
        $dbcOnfig= $dbmysql [$db];
        $this->DB_HOST = $dbconfig [&#39;DB_HOST&#39;];
        $this->DB_NAME = $dbconfig [&#39;DB_NAME&#39;];
        $this->DB_USER = $dbconfig [&#39;DB_USER&#39;];
        $this->DB_PWD = $dbconfig [&#39;DB_PWD&#39;];
        $this->DB_PREFIX = $dbconfig [&#39;DB_PREFIX&#39;];
        $this->DB_CHARSET = $dbconfig [&#39;DB_CHARSET&#39;];
    }
    private function pdo_db() {
        try {
            return new PDO ( "mysql:host=$this->DB_HOST;dbname=$this->DB_NAME", $this->DB_USER, 
            $this->DB_PWD, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES &#39;$this->DB_CHARSET&#39;",
             PDO::ATTR_PERSISTENT => true ) );
        } catch ( Exception $e ) {
            echo &#39;数据库连接失败,详情: &#39; . $e->getMessage () . &#39; 请在/config/db.php中配制正确的数据库连接信息&#39;;
            exit ();
        }
     
    }
    public function M($name) {
        $this->dbname = $this->DB_PREFIX . $name;
    }
    /**
     * 处理条件
     */
    public function where($where) {
        if (! $this->and)
            $this->and = &#39; and&#39;;
        if (is_array ( $where )) {
            foreach ( $where as $key => $row ) {
                $w [] = " `$key`=&#39;$row&#39;";
            }
            $sql = " WHERE (" . trim ( implode ( $this->and, $w ) ) . ") ";
        } elseif (! $where) {
            return false;
        } else {
            $sql = " WHERE " . $where;
        }
        return $sql;
    }
    /**
     * 处理数据
     */
    private function date($date) {
        if (is_array ( $date )) {
            foreach ( $date as $key => $row ) {
                $d [] = ""` . $key . "`=&#39;" . $row . "&#39;";
            }
            return implode ( &#39;,&#39;, $d );
        } else {
            return $date;
        }
    }
    /**
     * 处理插入数据
     */
    public function Upvalues($date) {
        if (is_array ( $date )) {
            foreach ( $date as $key => $row ) {
                $k [] = ""` . $key . ""`;
                $r [] = "&#39;" . $row . "&#39;";
            }
            $k = "(" . implode ( &#39;,&#39;, $k ) . ")";
            $r = "(" . implode ( &#39;,&#39;, $r ) . ")";
            return $k . &#39; VALUES &#39; . $r;
        } else {
            return false;
        }
    }
    /**
     * 排序
     * @param 列 $Row
     * @param ASC or DESC$ORDER
     */
    public function OrderBy($Row = &#39;&#39;, $ORDER = &#39;DESC&#39;) {
        $this->OrderBy = "ORDER BY `$Row` $ORDER";
    }
    /**
     * 执行查询语句 SELECT
     */
    public function query($sql) {
        return empty ( $sql ) ? exit ( &#39;必须指定SQL语句&#39; ) : $this->pdo_db ()->query ( $sql );
    }
    /**
     * 执行 INSERT、UPDATE、DELETE
     */
    public function exec($sql) {
        return empty ( $sql ) ? exit ( &#39;必须指定SQL语句&#39; ) : $this->pdo_db ()->exec ( $sql );
    }
    /**
     * 查询个数
     */
    public function Limit($a = NULL, $b = NULL) {
        $this->Limit = Filter::IntegerFilter ( $a ) && Filter::IntegerFilter ( $b ) ? " LIMIT $a,$b" : &#39;&#39;;
    }
    /**
     * 处理多个查询条件
     * 
     */
    public function LIKEMultipleQueries($LIKE, $W) {
        $LIKE = array_filter ( explode ( &#39; &#39;, trim ( $LIKE ) ) );
        if (is_array ( $LIKE )) {
            foreach ( $LIKE as $row ) {
                $l [] = "`$W` LIKE  &#39;%" . trim ( $row ) . "%&#39;";
            }
            return &#39;(&#39; . implode ( &#39; OR &#39;, $l ) . &#39;)&#39;;
        }
    }
    /**
     * 点亮关键字
     */
    public $SearchLightKey = array ();
    public function SearchLightKey($array, $q) {
        foreach ( $array as $s ) {
            foreach ( $q as $key => $row ) {
                $row = array_filter ( explode ( &#39; &#39;, trim ( $row ) ) );
                if ($s [$key]) {
                    foreach ( $row as $r ) {
                        $s [$key] = preg_replace ( "/(" . trim ( $r ) . ")/i", 
                        "\\1", $s [$key] );
                    }
                }
            }
            $this->SearchLightKey [] = $s;
        }
    }
    /**快捷操作开始**/
    /**
     * 查询一条数据
     */
    public function find($where, $Row = &#39;*&#39;) {
        $sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit;
        return $this->pdo_db ()->query ( $sql )->fetch ();
    }
    /**
     * 查询多条数据
     */
    public function findAll($where, $Row = &#39;*&#39;) {
        $sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit;
        return $this->pdo_db ()->query ( $sql )->fetchAll ();
    }
    /**
     * 查询总数
     */
    public function findsum($where, $Row) {
        $sql = "SELECT SUM($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1";
        return $this->pdo_db ()->query ( $sql )->fetch ();
    }
    /**
     * 查询个数
     */
    public function findcount($where, $Row) {
        $sql = "SELECT COUNT($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1 ";
        return $this->pdo_db ()->query ( $sql )->fetch ();
    }
    /**
     * 更新数据
     */
    public function update($date, $where) {
        $sql = "UPDATE `$this->dbname` SET " . $this->date ( $date ) . $this->where ( $where ) . ";";
        return $this->pdo_db ()->exec ( $sql );
    }
    /**
     * 插入数据
     */
    public function insert($date) {
        $sql = "INSERT INTO `$this->dbname` " . $this->Upvalues ( $date ) . ";";
        $pdo = $this->pdo_db ();
        return $pdo->exec ( $sql ) ? $pdo->lastInsertId () : false;
    }
    /**
     * 删除数据
     */
    public function delete($where) {
        $sql = "DELETE FROM `$this->dbname` " . $this->where ( $where ) . $this->Limit . ";";
        return $this->pdo_db ()->exec ( $sql );
    }
}

以上就是实用PDO MYSQL数库操作类的内容,更多相关内容请关注PHP中文网(www.php1.cn)!

推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
author-avatar
瑞铭与我_109
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有