discuz mysql 类_discuz7 phpMysql操作类

MySql数据库连接类,大家可以看下网上老手们用的什么方法,大家可以直接拿来用,但前提是大家能熟练的掌握的基础上,这样才能有所进步。

/*

* MySql数据库连接类

* mysql.class.php 2009.04.15 by Hackbaby

*/

class dbstuff {

var $version = '';

var $querynum = 0;

var $link = null;

//连接数据库

function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0, $halt = TRUE, $dbcharset2 = '') {

$conn = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';

if (!$this->link = @$conn($dbhost, $dbuser, $dbpw, 1)) {

$halt && $this->halt('Can not connect to MySQL server');

} else {

if($this->version() > '4.1') {

global $charset, $dbcharset;

$dbcharset = $dbcharset2 ? $dbcharset2 : $dbcharset;

$dbcharset = !$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $charset) : $dbcharset;

$serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';

$serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';

$serverset && mysql_query("SET $serverset", $this->link);

}

$dbname && @mysql_select_db($dbname, $this->link);

}

}

//选择数据库

function select_db($dbname) {

return mysql_select_db($dbname, $this->link);

}

//数据库执行后的返回方法

function fetch_array($query, $result_type = MYSQL_ASSOC) {

return mysql_fetch_array($query, $result_type);

}

//返回fetch_array方法执行后的返回值

function fetch_first($sql) {

return $this->fetch_array($this->query($sql));

}

//返回result方法执行后的返回值

function result_first($sql) {

return $this->result($this->query($sql), 0);

}

//执行对数据库的操作

function query($sql, $type = '') {

global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes;

//判断debug调试

if(defined('SYS_DEBUG') && SYS_DEBUG) {

@include_once WEB_ROOT.'./include/debug.func.php';

sqldebug($sql);

}

//

$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?

'mysql_unbuffered_query' : 'mysql_query';

if(!($query = $func($sql, $this->link))) {

if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'RETRY') {

$this->close();

require './config.inc.php';

$this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset);

$this->query($sql, 'RETRY'.$type);

} elseif($type != 'SILENT' && substr($type, 5) != 'SILENT') {

$this->halt('MySQL Query Error', $sql);

}

}

//查询条数加1

$this->querynum++;

return $query;

}

//取得前一次 MySQL 操作所影响的记录行数

function affected_rows() {

return mysql_affected_rows($this->link);

}

//数据库的文本错误提示

function error() {

return (($this->link) ? mysql_error($this->link) : mysql_error());

}

//返回上一个 MySQL 操作中的错误信息的数字编码

function errno() {

return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());

}

//返回数据库操作结果

function result($query, $row = 0) {

$query = @mysql_result($query, $row);

return $query;

}

//返回数据库查询等操作的数目

function num_rows($query) {

$query = mysql_num_rows($query);

return $query;

}

//取得结果集中字段的数目

function num_fields($query) {

return mysql_num_fields($query);

}

//释放结果内存

function free_result($query) {

return mysql_free_result($query);

}

//取得上一步 INSERT 操作产生的 ID

function insert_id() {

return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);

}

//以数组的形式返回查询结果

function fetch_row($query) {

$query = mysql_fetch_row($query);

return $query;

}

//从结果集中取得列信息并作为对象返回

function fetch_fields($query) {

return mysql_fetch_field($query);

}

//获取Mysql的版本

function version() {

if(empty($this->version)) {

$this->version = mysql_get_server_info($this->link);

}

return $this->version;

}

//关闭连接

function close() {

return mysql_close($this->link);

}

//错误提示

function halt($message = '', $sql = '') {

define('CACHE_FORBIDDEN', TRUE);

require_once WEB_ROOT . './include/db_mysql_error.inc.php';

}

}

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 并发模型

并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同。这篇并发模型教程将会较深入地介绍目前(2015年,本文…

Java String compareTo()方法与示例

字符串compareTo()方法 (String compareTo() Method) compareTo() is a String method in Java and it is used to compare two strings (case-sensitive). compareTo()是Java中的String方法,用于比较两个字符串(区分大小写)。 If both strings are equal – it r…

nginx mysql 查询系统_nginx/mysql查看内存占用

查看每个php-fpm平均占用系统内存,也适用看nginx/mysqld等,把php-fpm换成mysqldps --no-headers -o "rss,cmd" -C php-fpm | awk { sum$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }查看占用内存[rootcentos69 ~]# ps -ylC php-fpm --sort:r…

linux用户及权限详解(20170425)

计算机资源权限用户用户,容器,关联权限:用户组,方便的指派权限用户:标示符用户组:标示符r 、w、x:1、2、4对于文件r:可读,可以使用类似cat等命令查看文件内容w:可写&…

kotlin 判断数字_Kotlin程序检查数字是否为质数

kotlin 判断数字A prime number is a natural number that is greater than 1 and cannot be formed by multiplying two smaller natural numbers. 质数是大于1的自然数,不能通过将两个较小的自然数相乘而形成。 Given a number num, we have to check whether nu…

mysql gtid配置_mysql 5.7 GTID主从配置

binlog-format:二进制日志的格式,有row、statement和mixed几种类型;需要注意的是:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,现在MySQL官方认为STATEMENT这个已经不再适合继续使用;但mixe…

mysql log4jlogger_mybatis结合log4j打印SQL日志

mybatis结合log4j打印SQL日志1.Maven引用jar包默认的mybatis不能打印出SQL日志,不便于查看调试,须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息。pom.xml 配置maven。注意以下3个都须要org.bgee.log4jdbc-log4j2log4jdbc-log4j2-jdbc4.11.16org.…

限制对web路径的访问

$ipcmd -I INPUT -i eth0 -p tcp --dport 80 -m string --string "/adapi" --algo bm -j DROP$ipcmd -I INPUT -i eth0 -p tcp --dport 80 -m string --string "/epapi" --algo bm -j DROP转载于:https://blog.51cto.com/luoguoling/1919928

kotlin 查找id_Kotlin程序查找等边三角形的区域

kotlin 查找idFormula to find area of Equilateral Triangle: area ( 1.73 side side)/4 查找等边三角形面积的公式: 面积(1.73边边)/ 4 Given the value of side, we have to find the area of Equilateral Triangle. 给定边的值,我们必须找到等边…

Orcale11g单机安装与卸载

前言:本篇主要介绍Oracle11g企业版安装的准备工作,建议使用图形化界面安装,静默安装出现问题较多,初学者不好排查,本篇只给出关键步骤,最后介绍完全删除Orcale方法; Oracle Database 11g Expres…

qt连接mysql4.7数据库_QT4.7访问MySQL的驱动编译过程

我们假设你已经成功安装了MySQL(我用的是MySQL的安装版)和QT,MySQL的安装路径采用的是其默认安装路径,也就是安装在了C:\Program Files下。下面开始正式讲解QT访问安装版MySQL的驱动的编译方法。第一步:因为MySQL的安装路径下有空格&#xff…

cellpadding_在CSS中设置cellpadding和cellspacing

cellpaddingIntroduction: 介绍: It is not unknown anymore that now and then we make use of tables in our web page or website, therefore we all are familiar with how to create tables or grids in our website or web page but there are times when we…

JavaScript中的arguments对象

JavaScript中的arguments对象 arguments 是一个类似数组的对象, 对应于传递给函数的参数。 语法 arguments 描述 arguments对象是所有函数中可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数的条目,第一个条目的索引…

mongodb 排序_技术分享 | MongoDB 一次排序超过内存限制的排查

本文目录:一、背景1. 配置参数检查2. 排序字段是否存在索引二、测试环境模拟索引对排序的影响1. 测试环境信息2. 报错语句的执行计划解释 3. 建立新的组合索引进行测试三、引申的组合索引问题1. 查询语句中,排序字段 _id 使用降序2. 查询语句中&#xff…

sim800 模式切换_SIM的完整形式是什么?

sim800 模式切换SIM:订户标识模块或订户标识模块 (SIM: Subscriber Identity Module or Subscriber Identification Module) SIM is an abbreviation of a Subscriber Identity Module or Subscriber Identification Module. SIM is a portable chip and an integra…

css新单位 vw , vh

考虑到未来响应式设计的开发,如果你需要,浏览器的高度也可以基于百分比值调整。但使用基于百分比值并不总是相对于浏览器窗口的大小定义的最佳方式,比如字体大小不会随着你窗口改变而改变,如今css3引入的新单位明确解决这一问题。…

linux下mysql目录结构_linux下mysql安装配置与目录结构

本节内容:linux下mysql安装与配置、mysql目录结构。1、准备安装程序(官方网站下载)服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rpm客户端:MySQL-client-community-5.1.44-1.rhel4.i386.rpm2、安装(打印信息略) 代码示例:[rootlocalh…

Python字典values()方法与示例

字典values()方法 (Dictionary values() Method) values() method is used to get all values of a dictionary, it returns a view object that contains the all values of the dictionary as a list. values()方法用于获取字典的所有值,它返回一个包含字典所有值…

spark源码分析之Executor启动与任务提交篇

任务提交流程 概述 在阐明了Spark的Master的启动流程与Worker启动流程。接下继续执行的就是Worker上的Executor进程了,本文继续分析整个Executor的启动与任务提交流程Spark-submit 提交一个任务到集群通过的是Spark-submit通过启动脚本的方式启动它的主类&#xff0…

mysql 5.5.22.tar.gz_MySQL 5.5.22源码编译安装

MySQL 最新的版本都需要cmake编译安装,估计以后的版本也会采用这种方式,所以特地记录一下安装步骤及过程,以供参考。注意:此安装是默认CentOS下已经安装了最新工具包,比如GNU make, GCC, Perl, libncurses5-dev&#x…