php封装的数据库函数与用法示例【参考thinkPHP】

php封装的数据库函数与用法示例【参考thinkPHP】,第1张

概述这篇文章主要介绍了php封装的数据库函数与用法,基于thinkPHP中数据库 *** 作相关代码整理简化而来,包括针对数据库的设置、连接、查询及日志 *** 作等功能,简单实用,需要的朋友可以参考下

本文实例讲述了PHP封装的数据库函数与用法。分享给大家供大家参考,具体如下:

从ThinkPHP里面抽离出来的数据库模块,感觉挺好用

common.PHP:

' . $label . HTMLspecialchars($output,ENT_QUOTES) . ''; } else { $output = $label . print_r($var,true); } } else { ob_start(); var_dump($var); $output = ob_get_clean(); if (!extension_loaded('xdeBUG')) { $output = preg_replace("/\]\=\>\n(\s+)/m",'] => ',$output); $output = '
' . $label . HTMLspecialchars($output,ENT_QUOTES) . '
'; } } if ($echo) { echo($output); return null; } else return $output;}/** * 调试输出 * @param type $msg */function _deBUG($msg) { if (C("deBUG")) echo "$msg
";}function _log($filename,$msg) { $time = date("Y-m-d H:i:s"); $msg = "[$time]\n$msg\r\n"; if (C("log")) { $fd = fopen($filename,"a+"); fwrite($fd,$msg); fclose($fd); }}/** * 日志记录 * @param type $str */function L($msg) { $time = date("Y-m-d H:i:s"); $clIEntIP = $_SERVER['REMOTE_ADDR']; $msg = "[$time $clIEntIP] $msg\r\n"; $log_file = C("LOGfile"); _log($log_file,$msg);}?>

config.PHP:

'MysqL','DB_HOST' => '127.0.0.1','DB_name' => 'DB','DB_USER' => 'USER','DB_PWD' => 'PWD','DB_PORT' => '3306',);return $db;?>

数据库模型类Model.class.PHP,放到classes/目录下:

db = $this->connect(); } /** * 连接数据库方法 */ public function connect($config = '',$linkNum = 0) { if (!isset($this->linkID[$linkNum])) { if (empty($config)) $config = array( 'username' => C('DB_USER'),'password' => C('DB_PWD'),'hostname' => C('DB_HOST'),'hostport' => C('DB_PORT'),'database' => C('DB_name') ); $this->linkID[$linkNum] = new MysqLi($config['hostname'],$config['username'],$config['password'],$config['database'],$config['hostport'] ? intval($config['hostport']) : 3306); if (MysqLi_connect_errno()) throw_exception(MysqLi_connect_error()); $this->connected = true; } return $this->linkID[$linkNum]; } /** * 初始化数据库连接 */ protected function initConnect() { if (!$this->connected) { $this->db = $this->connect(); } } /** * 获得所有的查询数据 * @access private * @param string $sql SQL语句 * @return array */ public function select($sql) { $this->initConnect(); if (!$this->db) return false; $query = $this->db->query($sql); $List = array(); if (!$query) return $List; while ($rows = $query->fetch_assoc()) { $List[] = $rows; } return $List; } /** * 只查询一条数据 */ public function find($sql) { $resultSet = $this->select($sql); if (false === $resultSet) { return false; } if (empty($resultSet)) {// 查询结果为空 return null; } $data = $resultSet[0]; return $data; } /** * 获取一条记录的某个字段值,sql 由自己组织 * 例子: $model->getFIEld("select ID from user limit 1") */ public function getFIEld($sql) { $resultSet = $this->select($sql); if (!empty($resultSet)) { return reset($resultSet[0]); } } /** * 执行查询 返回数据集 */ public function query($str) { $this->initConnect(); if (!$this->db) { if (C("deBUG")) echo "connect to database error"; return false; } $this->queryStr = $str; //释放前次的查询结果 if ($this->queryID) $this->free(); $this->queryID = $this->db->query($str); // 对存储过程改进 if ($this->db->more_results()) { while (($res = $this->db->next_result()) != NulL) { $res->free_result(); } } //$this->deBUG(); if (false === $this->queryID) { echo $this->error(); return false; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->fIEld_count; return $this->getAll(); } } /** * 执行语句 , 例如插入,更新 *** 作 * @access public * @param string $str sql指令 * @return integer */ public function execute($str) { $this->initConnect(); if (!$this->db) return false; $this->queryStr = $str; //释放前次的查询结果 if ($this->queryID) $this->free(); $result = $this->db->query($str); if (false === $result) { $this->error(); return false; } else { $this->numRows = $this->db->affected_rows; $this->lastInsID = $this->db->insert_ID; return $this->numRows; } } /** * 获得所有的查询数据 * @access private * @param string $sql SQL语句 * @return array */ private function getAll() { //返回数据集 $result = array(); if ($this->numRows > 0) { //返回数据集 for ($i = 0; $i < $this->numRows; $i++) { $result[$i] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $result; } /** * 返回最后插入的ID */ public function getLastInsID() { return $this->db->insert_ID; } // 返回最后执行的SQL语句 public function _sql() { return $this->queryStr; } /** * 数据库错误信息 */ public function error() { $this->error = $this->db->errno . ':' . $this->db->error; if ('' != $this->queryStr) { $this->error .= "\n [ SQL语句 ] : " . $this->queryStr; } //trace($this->error,'','ERR'); return $this->error; } /** * 释放查询结果 */ public function free() { $this->queryID->free_result(); $this->queryID = null; } /** * 关闭数据库 */ public function close() { if ($this->db) { $this->db->close(); } $this->db = null; } /** * 析构方法 */ public function __destruct() { if ($this->queryID) { $this->free(); } // 关闭连接 $this->close(); }}

例子:

query($sql); _dump($List);}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

总结

以上是内存溢出为你收集整理的php封装的数据库函数与用法示例【参考thinkPHP】全部内容,希望文章能够帮你解决php封装的数据库函数与用法示例【参考thinkPHP】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存