那么如何即简便又能达到一样的效果呢,答案当然是通过封装函数,在通过每次须要连接数据库,对表进行增编削查时直接调用封装好的函数就可以完成,而不用写上一长串的代码,同时,假如每次操作数据库时,做事器能够自动给我们捕捉并记录我们的数据并以日志的形式天生日志文件,那么在检讨Bug的时候是不是方便了很多.大略便是快乐。
下面
<?php
/
mysql.php mysql系列操作函数
@author PHP凌晨四点半
/
/
连接数据库-mysql_connect()
@return resource 连接成功,返回连接数据库的资源
/
function mConn(){
static $conn = null;
if($conn === null){
$config = require (ROOT . '/lib/config.php');
$conn = mysql_connect($config['host'],$config['user'],$config['pwd']);
mysql_query('use '.$config['db'],$conn);
mysql_query('set names '.$config['charset'],$conn);
}
return $conn;
}
/
查询数据--mysql_query;
@return mixed resource/bool;
/
function mQuery($sql){
$rs = mysql_query($sql,mConn());
if($rs){
mLog($sql);
}else{
mLog($sql. \"大众\n\公众 . mysql_error());
}
return $rs;
}
/
log日志记录功能
@parm str $str 待记录的字符串
/
function mLog($str){
date_default_timezone_set('PRC');
$filename = ROOT . '/log/' . date('Ymd') . '.txt';
$log = \公众---------------------------------------------------------------\n\公众.date('Y/m/d H:i:s') . \"大众\n\公众 . $str . \"大众\n\公众 .\"大众---------------------------------------------------------------\n\n\"大众;
return file_put_contents($filename,$log,FILE_APPEND);
}
/
select查询返回二维数据,用while循环输出
@param str $sql select 待查询的sql语句;
@return mixed select 查询成功,返回二维数组,失落败返回false
/
function mGetAll($sql) {
$rs = mQuery($sql);
if(!$rs) {
return false;
}
$data = array();
while($row = mysql_fetch_assoc($rs)) {
$data[] = $row;
}
return $data;
}
/
$sql = \"大众select from cat\公众;
print_r(mGetAll($sql));/
/
select 取出一行数据;
@param str sql 待查询的sql语句;
@return arr/false 查询成功返回一个一维数组;
/
function mGetRow($sql){
$res = mQuery($sql);
if(!$res){
return false;
}else{
return mysql_fetch_assoc($res);
}
}
/$sql = \公众select from cat where cat_id = 1\"大众;
print_r(mGetRow($sql));/
/
select 查询返回一个结果
@param str $sql 待查询的select语句
@return mixed 成功,返回结果,失落败返回false
/
function mGetOne($sql) {
$rs = mQuery($sql);
if(!$rs) {
return false;
}
return mysql_fetch_row($rs)[0];
}
/
返回符合查询结果的个数
@param str $sql 待查询的sql语句;
@return 成功,返回查询符合结果的个数值,失落败,返回false;
/
function mGetNum($sql){
$result = mQuery($sql);
if(!$result){
return false;
}
return mysql_fetch_row($result)[0];
}
/$sql = \"大众select count() from cat where cat_id = 1\"大众;
echo mGetNum($sql);/
/
@param str $table 表名
@param str $data 吸收到的一维数组数据
@param str $act 动作默认为'insert'
@param str $where 防止update变动时少加where条件;
@return bool insert或者update 插入成功或失落败;
/
function mExec($table,$data,$act = 'insert',$where=0){
if($act == 'insert'){
$sql = \"大众insert into $table (\"大众;
$sql .= implode(',', array_keys($data)) . \"大众) values ('\"大众;
$sql .= implode(\"大众','\"大众, array_values($data)) . \公众')\"大众;
return mQuery($sql);
}else if($act == 'update'){
$sql = \"大众update $table set \公众;
foreach($data as $k=>$v){
$sql .= $k .\"大众='\公众 .$v .\公众',\公众;
}
$sql = rtrim($sql,',') .\"大众 where \"大众. $where;
return mQuery($sql);
}
}
代码可以直策应用于现实开拓过程中,当作素材,不懂的可以问
代码多少可能有一点Bug,欢迎大家指出.感激.