Server : nginx/1.22.1 System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/www.jkmold.com/phpcms/libs/classes/ |
<?php /** * access.class.php 数据库实现类 * * @copyright (C) 2005-2010 PHPCMS * @license http://www.phpcms.cn/license/ * @lastmodify 2010-6-1 */ final class db_access { /** * 数据库配置信息 */ private $config = null; /** * 数据库连接资源句柄 */ public $link = null; /** * 最近一次查询资源句柄 */ public $lastqueryid = null; /** * 统计数据库查询次数 */ public $querycount = 0; public function __construct() { } /** * 打开数据库连接,有可能不真实连接数据库 * @param $config 数据库连接参数 * * @return void */ public function open($config) { $this->config = $config; if($config['autoconnect'] == 1) { $this->connect(); } } /** * 真正开启数据库连接 * * @return void */ public function connect() { /*真正的连接程序*/ $dbhost = $this->config['hostname']; $dbuser = $this->config['username']; $dbpwd = $this->config['password']; $this->conn = new com('adodb.connection'); if(!$this->conn) return false; $this->conn->open("DRIVER={Microsoft Access Driver (*.mdb)};dbq=$dbhost;uid=$dbuser;pwd=$dbpw"); if($this->conn->state == 0){ $this->conn->open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$dbhost"); if($this->conn->state == 0) return false;; } define('NUM', 1); define('ASSOC', 2); define('BOTH', 3); return $this->conn->state; } function select_db($dbname) { return $this->conn->state; } function query($sql, $type = '', $expires = 3600, $dbname = '') { $this->querynum++; $sql = trim($sql); if(preg_match("/^(select.*)limit ([0-9]+)(,([0-9]+))?$/i", $sql, $matchs)) { $sql = $matchs[1]; $offset = $matchs[2]; $pagesize = $matchs[4]; $query = $this->conn->Execute($sql); return $this->limit($query, $offset, $pagesize); } else { return $this->conn->Execute($sql); } } function get_one($query) { $this->querynum++; $rs = $this->conn->Execute($query); $r = $this->fetch_array($rs); $this->free_result($rs); return $r; } function fetch_array($rs, $result_type = 3) { if(is_array($rs)) { return $this->cursor < count($rs) ? $rs[$this->cursor++] : FALSE; } else { if($rs->EOF) return FALSE; $array = array(); for($i = 0; $i < $this->num_fields($rs); $i++) { $fielddata = $rs->Fields[$i]->Value; if($result_type == NUM || $result_type == BOTH) $array[$i] = $fielddata; if($result_type == ASSOC || $result_type == BOTH) $array[$rs->Fields[$i]->Name] = $fielddata; } $rs->MoveNext(); return $array; } } function select($sql, $keyfield = '') { $array = array(); $result = $this->query($sql); while($r = $this->fetch_array($result)) { if($keyfield) { $key = $r[$keyfield]; $array[$key] = $r; } else { $array[] = $r; } } $this->free_result($result); return $array; } function num_rows($rs) { return is_array($rs) ? count($rs) : $rs->recordcount; } function num_fields($rs) { return $rs->Fields->Count; } function fetch_assoc($rs) { return $this->fetch_array($rs, ASSOC); } function fetch_row($rs) { return $this->fetch_array($rs, NUM); } function free_result($rs) { if(is_resource($rs)) $rs->close(); } function error() { return $this->conn->Errors[$this->conn->Errors->Count-1]->Number; } function errormsg() { return $this->conn->Errors[$this->conn->Errors->Count-1]->Description; } function close() { $this->conn->close(); } function limit($rs, $offset, $pagesize = 0) { if($pagesize > 0) { $rs->Move($offset); } else { $pagesize = $offset; } $info = array(); for($i = 0; $i < $pagesize; $i++) { $r = $this->fetch_array($rs); if(!$r) break; $info[] = $r; } $this->free_result($rs); $this->cursor = 0; return $info; } } ?>