PHP Mysql和Mysqli数据库函数整合

服务器如果支持mysqli函数将优先mysqli函数进行数据库操作 否则将调用mysql函数进行数据库操作

用法SQL::connect(host,user,pass).....

本类所实现的方法不可传递数据库连接对象。程序已自动传递

<?php
/**
* User: iyoule
* Date: 13-9-11
* Time: 下午11:48
* 用法:SQL::connect(host,user,pass).....
* To change this template use File | Settings | File Templates.
*/ class SQL {
private static $sqlArr = array(
'fetch_array'=> array('mysql_fetch_array','mysqli_fetch_array'),
'fetch_assoc'=> array('mysql_fetch_assoc','mysqli_fetch_assoc'),
'fetch_field'=> array('mysql_fetch_field','mysqli_fetch_field'),
'fetch_lengths'=> array('mysql_fetch_lengths','mysqli_fetch_lengths'),
'fetch_object'=> array('mysql_fetch_object','mysqli_fetch_object'),
'fetch_row'=> array('mysql_fetch_row','mysqli_fetch_row'),
'field_seek'=> array('mysql_field_seek','mysqli_field_seek'),
'free_result'=> array('mysql_free_result','mysqli_free_result'),
'connect'=> array('mysql_connect','mysqli_connect'),
'data_seek'=> array('mysql_data_seek','mysqli_data_seek'),
'affected_rows' => array('mysql_affected_rows','mysqli_affected_rows'),
'client_encoding'=> array('mysql_client_encoding','mysqli_client_encoding'),
'close'=> array('mysql_close','mysqli_close'),
'errno'=> array('mysql_errno','mysqli_errno'),
'error'=> array('mysql_error','mysqli_error'),
'escape_string'=> array('mysql_escape_string','mysqli_escape_string'),
'get_client_info'=> array('mysql_get_client_info','mysqli_get_client_info'),
'get_host_info'=> array('mysql_get_host_info','mysqli_get_host_info'),
'get_proto_info'=> array('mysql_get_proto_info','mysqli_get_proto_info'),
'get_server_info'=> array('mysql_get_server_info','mysqli_get_server_info'),
'info'=> array('mysql_info','mysqli_info'),
'insert_id'=> array('mysql_insert_id','mysqli_insert_id'),
'ping'=> array('mysql_ping','mysqli_ping'),
'query'=> array('mysql_query','mysqli_query'),
'real_escape_string'=> array('mysql_real_escape_string','mysqli_real_escape_string'),
'select_db'=> array('mysql_select_db','mysqli_select_db'),
'set_charset'=> array('mysql_set_charset','mysqli_set_charset'),
'stat'=> array('mysql_stat','mysqli_stat'),
'thread_id'=> array('mysql_thread_id','mysqli_thread_id'),
'num_fields'=> array('mysql_num_fields','mysqli_num_fields'),
'num_rows'=> array('mysql_num_rows','mysqli_num_rows') );
private static $resource = null;
private static $funcs = array(
'affected_rows','client_encoding','close','errno','error','escape_string','get_client_info','get_host_info','get_proto_info',
'get_proto_info','get_server_info','info','insert_id','ping','query','real_escape_string','select_db','set_charset','stat',
'thread_id'
);
private static function _globalFunc_($func=__function__,$args){
if($func==='_globalFunc_') return false;
$_Mysqli = extension_loaded('mysqli');
$sqlArr = self::$sqlArr;
$_func = $func;
$func = $_Mysqli?$sqlArr[$func][1]:$sqlArr[$func][0];
if($_func=='connect'){
return self::$resource = self::$resource===null?call_user_func_array($func,$args):self::$resource;
}
if(in_array($_func,self::$funcs)){
$_Mysqli?array_unshift($args,self::$resource):array_push($args,self::$resource);
}
unset($sqlArr,$_Mysqli);
return call_user_func_array($func,$args);
}
public static function affected_rows(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function client_encoding(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function close(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function connect(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function data_seek(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function errno(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function error(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function escape_string(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_array(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_assoc(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_field(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_lengths(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_object(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function fetch_row(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function field_seek(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function free_result(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function get_client_info(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function get_host_info(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function get_proto_info(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function get_server_info(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function info(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function insert_id(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function num_fields(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function num_rows(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function ping(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function query(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function real_escape_string(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function select_db(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function set_charset(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function stat(){
return self::_globalFunc_(__function__,func_get_args());
}
public static function thread_id(){
return self::_globalFunc_(__function__,func_get_args());
}
private function __destruct(){
self::close();
self::$resource=null;
}
}

  

php Mysql 和Mysqli数据库函数整合的更多相关文章

  1. PHP学习之[第09讲]PHP 的 Mysql 数据库函数 (微型博客系统)

    一.数据库函数: mysql_connect(数据库地址,用户名,密码) mysql_select_db(数据库名) mysql_set_chartset(‘编码’) //PHP5.2.3以后的函数 ...

  2. Java调用MySql数据库函数

    Java调用MySql数据库函数 /** * 调用mysql的自定义函数 * */ private void test() { logger.info("show task start &q ...

  3. redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)

    一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...

  4. PHP数据库连接mysql与mysqli的区别与用法

    一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...

  5. 【mysql注入】mysql注入点的技巧整合利用

    [mysql注入]mysql注入点的技巧整合利用 本文转自:i春秋社区 前言: 渗透测试所遇的情况瞬息万变,以不变应万变无谓是经验与技巧的整合 简介: 如下 mysql注入点如果权限较高的话,再知道w ...

  6. PHP中MySQL、MySQLi和PDO的用法和区别

    PHP的MySQL扩展(优缺点) 设计开发允许PHP应用与MySQL数据库交互的早期扩展.mysql扩展提供了一个面向过程 的接口: 并且是针对MySQL4.1.3或更早版本设计的.因此,这个扩展虽然 ...

  7. mysql与mysqli的一些区别和方法

    一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...

  8. PHP中MySQL、MySQLi和PDO的用法和区别【原创】

    对于一个初学PHP的自己,对数据库的连接有着很大的疑惑,从Java转到PHP.数据库连接变了,以前只知道JDBC连接数据库,或者直接用框架调用,对于的PHP的数据库连接方式,及其应用.不是很了解,于是 ...

  9. PHP中MySQL数据库连接,数据读写,修改方法

    MySQL连接大的来说有两种方法,一种是mysqli,另一种是mysql.php为连接MySQL提供了函数库,有mysql和mysqli,mysqli是mysql函数库的扩展,是php5才支持的.当你 ...

随机推荐

  1. PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框

    零.引言 PropertyGrid中我们经常看到一些下拉式的编辑方式(Color属性)和弹出式编辑框(字体),这些都是为一些复杂的属性提供的编辑方式,本文主要说明如何实现这样的编辑方式. 一.为属性提 ...

  2. nodejs实现本地上传图片并预览功能(express4.0+)

    Express为:4.13.1  multyparty: 4.1.2 代码主要实现本地图片上传到nodejs服务器的文件下,通过取图片路径进行图片预览 写在前面:计划实现图片上传预览功能,但是本地图片 ...

  3. 利用java生成带有干扰线的网页验证码图片

    package imageCreate; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import j ...

  4. WPF那些事儿

    概述 感觉学习的东西必须做个记录,不然很快就忘掉了.现在把WPF学习过程中一些零碎的东西记录在下面,没有具体的主题,想到啥.看到啥都写在这里,算是复习一下并做个备忘吧. 1. 等待对话框 看到同事做的 ...

  5. 运用Hibernate-Tools自动生成Java类和schema时,出现not found while looking for property...异常

    问题描述: 在使用Hibernate-tools时出现not found while looking for property...(具体信息省略). 问题分析: 我找到出错对应的hbm.xml文件, ...

  6. IScroll5+在ios、android点击(click)事件不兼容解决方法

    Bug描述: ios.android4.4+下不能触发click事件. Bug解决: 调用iscroll插件,增加配置参数:click:true/false click的值是要根据移动终端设备进行判断 ...

  7. Javascript 拖拽雏形——逐行分析代码,让你轻松了解拖拽的原理

    拖拽的原理: 其实就是鼠标与左上角的距离保持不变.我们来看下图, 这红点就是鼠标. 拖拽拖拽实际上来说就是通过鼠标的位置来计算物体的位置,就是这么简单,就是这么任性. 那这个距离怎么求呢?? 鼠标的位 ...

  8. MYSQL 没有varchar(max)这个类型。

    背景: MYSQL 中不可以用varchar(max) 这种类型列来建立表 -------------------------------------------------------------- ...

  9. ERS卫星

    http://www.esa.int/Our_Activities/Operations/ERS-2 ERS-2 ROLE Earth observation (EO) LAUNCH DATE 21 ...

  10. 目前常用AD/DA芯片简介

    目前生产AD/DA的主要厂家有ADI.TI.BB.PHILIP.MOTOROLA等,武汉力源公司拥有多年从事电子产品的经验和雄厚的技术力量支持,已取得排名世界前列的模拟IC生产厂家ADI.TI公司代理 ...