问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一份功能齐全php和mysql的连接类,操作函数齐全

发布网友 发布时间:2022-04-08 20:56

我来回答

5个回答

懂视网 时间:2022-04-09 01:17

现在就来看看这个类吧!

<?php

class Mysql{
 var $conn;
 var $query_list = array();
 public $query_count = 0;

 public function __construct($c){
 if(!isset($c[‘port‘])){
  $c[‘port‘] = ‘3306‘;
 }
 $server = $c[‘host‘] . ‘:‘ . $c[‘port‘];
 $this->conn = mysql_connect($server, $c[‘username‘], $c[‘password‘], true) or die(‘connect db error‘);
 mysql_select_db($c[‘dbname‘], $this->conn) or die(‘select db error‘);
 if($c[‘charset‘]){
  mysql_query("set names " . $c[‘charset‘], $this->conn);
 }
 }

 /**
 * 执行 mysql_query 并返回其结果.
 */
 public function query($sql){
 $stime = microtime(true);

 $result = mysql_query($sql, $this->conn);
 $this->query_count ++;
 if($result === false){
  throw new Exception(mysql_error($this->conn)." in SQL: $sql");
 }

 $etime = microtime(true);
 $time = number_format(($etime - $stime) * 1000, 2);
 $this->query_list[] = $time . ‘ ‘ . $sql;
 return $result;
 }

 /**
 * 执行 SQL 语句, 返回结果的第一条记录(是一个对象).
 */
 public function get($sql){
 $result = $this->query($sql);
 if($row = mysql_fetch_object($result)){
  return $row;
 }else{
  return null;
 }
 }

 /**
 * 返回查询结果集, 以 key 为键组织成关联数组, 每一个元素是一个对象.
 * 如果 key 为空, 则将结果组织成普通的数组.
 */
 public function find($sql, $key=null){
 $data = array();
 $result = $this->query($sql);
 while($row = mysql_fetch_object($result)){
  if(!empty($key)){
  $data[$row->{$key}] = $row;
  }else{
  $data[] = $row;
  }
 }
 return $data;
 }

 public function last_insert_id(){
 return mysql_insert_id($this->conn);
 }

 /**
 * 执行一条带有结果集计数的 count SQL 语句, 并返该计数.
 */
 public function count($sql){
 $result = $this->query($sql);
 if($row = mysql_fetch_array($result)){
  return (int)$row[0];
 }else{
  return 0;
 }
 }

 /**
 * 开始一个事务.
 */
 public function begin(){
 mysql_query(‘begin‘);
 }

 /**
 * 提交一个事务.
 */
 public function commit(){
 mysql_query(‘commit‘);
 }

 /**
 * 回滚一个事务.
 */
 public function rollback(){
 mysql_query(‘rollback‘);
 }

 /**
 * 获取指定编号的记录.
 * @param int $id 要获取的记录的编号.
 * @param string $field 字段名, 默认为‘id‘.
 */
 function load($table, $id, $field=‘id‘){
 $sql = "select * from `{$table}` where `{$field}`=‘{$id}‘";
 $row = $this->get($sql);
 return $row;
 }

 /**
 * 保存一条记录, 调用后, id被设置.
 * @param object $row
 */
 function save($table, &$row){
 $sqlA = ‘‘;
 foreach($row as $k=>$v){
  $sqlA .= "`$k` = ‘$v‘,";
 }

 $sqlA = substr($sqlA, 0, strlen($sqlA)-1);
 $sql = "insert into `{$table}` set $sqlA";
 $this->query($sql);
 if(is_object($row)){
  $row->id = $this->last_insert_id();
 }else if(is_array($row)){
  $row[‘id‘] = $this->last_insert_id();
 }
 }

 /**
 * 更新$arr[id]所指定的记录.
 * @param array $row 要更新的记录, 键名为id的数组项的值指示了所要更新的记录.
 * @return int 影响的行数.
 * @param string $field 字段名, 默认为‘id‘.
 */
 function update($table, &$row, $field=‘id‘){
 $sqlA = ‘‘;
 foreach($row as $k=>$v){
  $sqlA .= "`$k` = ‘$v‘,";
 }

 $sqlA = substr($sqlA, 0, strlen($sqlA)-1);
 if(is_object($row)){
  $id = $row->{$field};
 }else if(is_array($row)){
  $id = $row[$field];
 }
 $sql = "update `{$table}` set $sqlA where `{$field}`=‘$id‘";
 return $this->query($sql);
 }

 /**
 * 删除一条记录.
 * @param int $id 要删除的记录编号.
 * @return int 影响的行数.
 * @param string $field 字段名, 默认为‘id‘.
 */
 function remove($table, $id, $field=‘id‘){
 $sql = "delete from `{$table}` where `{$field}`=‘{$id}‘";
 return $this->query($sql);
 }

 function escape(&$val){
 if(is_object($val) || is_array($val)){
  $this->escape_row($val);
 }
 }

 function escape_row(&$row){
 if(is_object($row)){
  foreach($row as $k=>$v){
  $row->$k = mysql_real_escape_string($v);
  }
 }else if(is_array($row)){
  foreach($row as $k=>$v){
  $row[$k] = mysql_real_escape_string($v);
  }
 }
 }

 function escape_like_string($str){
 $find = array(‘%‘, ‘_‘);
 $replace = array(‘\%‘, ‘\_‘);
 $str = str_replace($find, $replace, $str);
 return $str;
 }
}
?>

 

使用例子:

<?php// 保存$db->save(‘table_1‘, $row);// 更新$db->update(‘table_1‘, $row);// 删除$db->remove(‘table_1‘, 1);// 查询$rows = $db->find($sql, ‘id‘)?>

 

转载请注明地址: http://www.phpddt.com/php/43.html 尊重他人劳动成果就是尊重自己!

非常完整的PHP的mysql类

标签:

热心网友 时间:2022-04-08 22:25

给分吧,扣扣25035108发给你追问加你QQ了 我的81733580

热心网友 时间:2022-04-08 23:43

这个··等你学多点··直接用开发框架吧····其实这个类也不难··你学得差不多了·自己写一个··

热心网友 时间:2022-04-09 01:18

thinkphp,百度一下追问恩 我在看~

热心网友 时间:2022-04-09 03:09

db库吧?php adodb类库适合你。半官方标准库,使用说明书百度文库就有
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...啊?我从嘴里吐出去是直的算过肺了吗?我不会从鼻子里出去_百度... 恶心呕吐是什么? 高考数学大题应注意哪些问题呢? 高考数学可不可以用高等数学啊 高考数学 基础知识点 常见考查方式 高考数学考什么内容 一般纳税人如何交所得税 以前的QQ忘记密码了那时候不要了就不找回密码了,现在想找回来,但是又没... 常州机场坐飞机流程 常州机场大巴时刻表 ...我早上九点起飞的飞机, 然后我这的机场快线大巴到机场时70分钟,_百 ... 奉贤国顺路上海银行星期天开门吗 上海银行星期日柜台转账吗 求助!!!儿子小学二年级被评为明日科技之星,需要家长写800到1000字的材料,没多少文化,平常又 感动中国人于敏颁奖词 一年级学生被评为科技之星怎么写 求颁奖词 在QQ群里发了一条错误语音消息,但随后点了删除,结果发现别人还是可以听到那条错误的语音,如何彻底删除 汽车空调漏氟怎么维修 拍戏全是假戏真做!梁朝伟10年后终开口,汤唯回应更是一绝!发生什么? 除湿26度和制冷26的区别是什么? 在剧组拍戏周期长,有时还要演感情戏,演员假戏真做的事经常发生吗? 怎么隐藏别人看不见 微信怎么怎样对好友隐藏号 怎样对好友隐藏 考出一级建造师能当项目经理吗? 一级项目经理与一级建造师资格有何区别? 一级建造师与项目经理有什么区别? 在△ABC中 BC=6 AC=4根号2 ∠C=45° 在BC边上有一动点P 过点P作PD平行AB 与AC交于D点 设BP=X S△=y 建筑项目经理要具备什么条件 Pt:5d9 6s1 Pd:4d 10 Ni:3d8 4s2 求解释 怎样关掉支付宝到账提示音 支付宝到到账的声音怎么关 离职期间公积金贷款会转化为商业贷款吗 要黑执事葬仪屋高清无水印抱着骷髅跳舞的图片,一定要高清无水印!!!!以下原图 抖音上那个抱着骷髅骨头跳舞的电影是什么电影? 我公积金贷款买了房子后,辞职后就没公积金了,之后银行会转为商业贷款吗? 会不会因为公积金没钱被视为 求一张莉莉艾的gif,做骷髅队动作的 用公积金贷款买房,不继续缴纳会不会有原来的公贷转变成商贷? 求找一部80后的动画片,是关于甲虫战车的,片尾曲是两个骷髅跳舞,旋律是无卡卡,无卡卡, 会跳舞的骷髅 一个女的在跳舞,把皮肉像*服一样脱掉,只剩骷髅,还在跳,是什么电影,好像是台湾香港的老电影 一欧美电影 差不多在七年前左右看过 里面有一个镜头是一群骷髅在边演奏边跳舞,感觉像搞笑的恐怖片 公积金贷款能不能转成商业贷款 街头艺人绑两个骷髅头跳舞的背景音乐,听着像是印度歌曲,但不是情字路上。 办理划转以后不交住房公积金了是不是就转成商贷 两个骷髅街上跳舞的背景音乐,好像是首印度歌曲 哥只是个传说 有个MV是个外国人撕自己的肉 最后成了一个骷髅架在跳舞 这MV在哪找? 最近在快手里有个表演骷髅跳舞的英文歌是什么歌?请各位大神解答 有个外国的MV,里面男主角把自己的衣服和皮肤都撕下来了,最后变成骷髅在跳舞,请问MV的名字? 一部香港鬼片,几个人进了一座房子,里面很多鬼在开晚会。有骷髅跳舞