mysql 12142_php连接mysql的类mysql.class.php
class mysql {
private $db_host; //数据库主机
private $db_user; //数据库用户名
private $db_pwd; //数据库用户名密码
private $db_database; //数据库名
private $conn; //数据库连接标识;
private $result; //执行query命令的结果资源标识
private $sql; //sql执行语句
private $row; //返回的条目数
private $coding; //数据库编码,GBK,UTF8,gb2312
private $bulletin = true; //是否开启错误记录
private $show_error = true;
//测试阶段,显示所有错误,具有安全隐患,默认关闭
private $is_error = false;
//发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的
public function __construct($db_host, $db_user,
$db_pwd, $db_database, $conn, $coding) {
$this->db_host =
$db_host;
$this->db_user =
$db_user;
$this->db_pwd =
$db_pwd;
$this->db_database
= $db_database;
$this->conn =
$conn;
$this->coding =
$coding;
$this->connect();
}
public function connect() {
if ($this->conn
== "pconn") {
//永久链接
$this->conn
= mysql_pconnect($this->db_host,
$this->db_user, $this->db_pwd);
} else {
//即使链接
$this->conn
= mysql_connect($this->db_host,
$this->db_user, $this->db_pwd);
}
if
(!mysql_select_db($this->db_database,
$this->conn)) {
if
($this->show_error) {
$this->show_error("数据库不可用:",
$this->db_database);
}
}
mysql_query("SET NAMES
$this->coding");
}
public function query($sql) {
if ($sql == "") {
$this->show_error("SQL语句错误:",
"SQL查询语句为空");
}
$this->sql =
$sql;
$result
= mysql_query($this->sql,
$this->conn);
if
(!$result) {
//调试中使用,sql语句出错时会自动打印出来
if
($this->show_error) {
$this->show_error("错误SQL语句:",
$this->sql);
}
} else {
$this->result
= $result;
}
return
$this->result;
}
public function create_database($database_name)
{
$database =
$database_name;
$sqlDatabase = 'create database
' . $database;
$this->query($sqlDatabase);
}
//将系统数据库与用户数据库分开,更直观的显示?
public function show_databases() {
$this->query("show
databases");
echo "现有数据库:" . $amount =
$this->db_num_rows($rs);
echo "
/>";
$i = 1;
while ($row =
$this->fetch_array($rs)) {
echo "$i
$row[Database]";
echo
"
";
$i++;
}
}
//以数组形式返回主机中所有数据库名
public function databases() {
$rsPtr =
mysql_list_dbs($this->conn);
$i = 0;
$cnt =
mysql_num_rows($rsPtr);
while ($i <
$cnt) {
$rs[] =
mysql_db_name($rsPtr, $i);
$i++;
}
return $rs;
}
public function show_tables($database_name)
{
$this->query("show
tables");
echo "现有数据库:" . $amount =
$this->db_num_rows($rs);
echo "
/>";
$i = 1;
while ($row =
$this->fetch_array($rs)) {
$columnName =
"Tables_in_" . $database_name;
echo "$i
$row[$columnName]";
echo
"
";
$i++;
}
}
public function mysql_result_li() {
return
mysql_result($str);
}
public function fetch_array() {
return
mysql_fetch_array($this->result);
}
//获取关联数组,使用$row['字段名']
public function fetch_assoc() {
return
mysql_fetch_assoc($this->result);
}
//获取数字索引数组,使用$row[0],$row[1],$row[2]
public function fetch_row() {
return
mysql_fetch_row($this->result);
}
//获取对象数组,使用$row->content
public function fetch_Object() {
return
mysql_fetch_object($this->result);
}
//简化查询select
public function findall($table) {
$this->query("SELECT
* FROM $table");
}
//简化查询select
public function select($table, $columnName = "*",
$condition = '', $debug = '') {
$condition = $condition ? '
Where ' . $condition : NULL;
if ($debug) {
echo "SELECT
$columnName FROM $table $condition";
} else {
$this->query("SELECT
$columnName FROM $table $condition");
}
}
//简化删除del
public function delete($table, $condition, $url =
'') {
if
($this->query("DELETE FROM $table WHERE
$condition")) {
if (!empty
($url))
$this->Get_admin_msg($url,
'删除成功!');
}
}
//简化插入insert
public function insert($table, $columnName,
$value, $url = '') {
if
($this->query("INSERT INTO $table ($columnName)
VALUES ($value)")) {
if (!empty
($url))
$this->Get_admin_msg($url,
'添加成功!');
}
}
//简化修改update
public function update($table, $mod_content,
$condition, $url = '') {
//echo "UPDATE $table SET
$mod_content WHERE $condition"; exit();
if
($this->query("UPDATE $table SET $mod_content WHERE
$condition")) {
if (!empty
($url))
$this->Get_admin_msg($url);
}
}
public function insert_id() {
return mysql_insert_id();
}
//指向确定的一条数据记录
public function db_data_seek($id) {
if ($id > 0)
{
$id = $id
-1;
}
if (!@
mysql_data_seek($this->result, $id)) {
$this->show_error("SQL语句有误:",
"指定的数据为空");
}
return
$this->result;
}
//
根据select查询结果计算结果集条数
public function db_num_rows() {
if
($this->result == null) {
if
($this->show_error) {
$this->show_error("SQL语句错误",
"暂时为空,没有任何内容!");
}
} else {
return
mysql_num_rows($this->result);
}
}
//
根据insert,update,delete执行结果取得影响行数
public function db_affected_rows() {
return
mysql_affected_rows();
}
//输出显示sql语句
public function show_error($message = "", $sql =
"") {
if (!$sql) {
echo
"" . $message .
"";
echo
"
";
} else {
echo
"
";
echo
"错误信息提示:
/>";
echo
"
echo
"
echo
"
color='white'>错误号:12142
";
echo
"
/>";
echo "错误原因:"
. mysql_error() . "
/>
";
echo
"
echo
"" . $message .
"";
echo
"
";
echo
"
color='red'>
" .
$sql .
"";
$ip =
$this->getip();
if
($this->bulletin) {
$time
= date("Y-m-d H:i:s");
$message
= $message . "\r\n$this->sql" . "\r\n客户IP:$ip" .
"\r\n时间 :$time" . "\r\n\r\n";
$server_date
= date("Y-m-d");
$filename
= $server_date . ".txt";
$file_path
= "error/" . $filename;
$error_content
= $message;
//$error_content="错误的数据库,不可以链接";
$file
= "error"; //设置文件保存目录
//建立文件夹
if
(!file_exists($file)) {
if
(!mkdir($file, 0777)) {
//默认的
mode 是 0777,意味着最大可能的访问权
die("upload
files directory does not exist and creation failed");
}
}
//建立txt日期文件
if
(!file_exists($file_path)) {
//echo
"建立日期文件";
fopen($file_path,
"w+");
//首先要确定文件存在并且可写
if
(is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if
(!$handle = fopen($file_path, 'a')) {
echo
"不能打开文件 $filename";
exit;
}
//将$somecontent写入到我们打开的文件中。
if
(!fwrite($handle, $error_content)) {
echo
"不能写入到文件 $filename";
exit;
}
//echo
"文件 $filename 写入成功";
echo
"——错误记录被保存!";
//关闭文件
fclose($handle);
}
else {
echo
"文件 $filename 不可写";
}
}
else {
//首先要确定文件存在并且可写
if
(is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if
(!$handle = fopen($file_path, 'a')) {
echo
"不能打开文件 $filename";
exit;
}
//将$somecontent写入到我们打开的文件中。
if
(!fwrite($handle, $error_content)) {
echo
"不能写入到文件 $filename";
exit;
}
//echo
"文件 $filename 写入成功";
echo
"——错误记录被保存!";
//关闭文件
fclose($handle);
}
else {
echo
"文件 $filename 不可写";
}
}
}
echo
"
";
if
($this->is_error) {
exit;
}
}
echo
"
";
echo
"
";
echo
"
";
}
//释放结果集
public function free() {
@
mysql_free_result($this->result);
}
//数据库选择
public function select_db($db_database) {
return
mysql_select_db($db_database);
}
//查询字段数量
public function num_fields($table_name) {
//return
mysql_num_fields($this->result);
$this->query("select
* from $table_name");
echo "
/>";
echo "字段数:" . $total =
mysql_num_fields($this->result);
echo
"
";
for ($i = 0; $i
< $total; $i++) {
print_r(mysql_fetch_field($this->result,
$i));
}
echo
"
";
echo "
/>";
}
//取得 MySQL
服务器信息
public function mysql_server($num = '') {
switch ($num) {
case 1
:
return
mysql_get_server_info(); //MySQL 服务器信息
break;
case
2 :
return
mysql_get_host_info(); //取得 MySQL 主机信息
break;
case
3 :
return
mysql_get_client_info(); //取得 MySQL 客户端信息
break;
case
4 :
return
mysql_get_proto_info(); //取得 MySQL 协议信息
break;
default
:
return
mysql_get_client_info(); //默认取得mysql版本信息
}
}
//析构函数,自动关闭数据库,垃圾回收机制
public function __destruct() {
if (!empty
($this->result)) {
$this->free();
}
mysql_close($this->conn);
} //function __destruct();
function getip() {
if (getenv("HTTP_CLIENT_IP")
&&
strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
$ip =
getenv("HTTP_CLIENT_IP");
} else
if
(getenv("HTTP_X_FORWARDED_FOR") &&
strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
$ip
= getenv("HTTP_X_FORWARDED_FOR");
} else
if
(getenv("REMOTE_ADDR") &&
strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
$ip
= getenv("REMOTE_ADDR");
}
else
if
(isset ($_SERVER['REMOTE_ADDR']) &&
$_SERVER['REMOTE_ADDR'] &&
strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
$ip
= $_SERVER['REMOTE_ADDR'];
}
else {
$ip
= "unknown";
}
return ($ip);
}
function inject_check($sql_str) { //防止注入
$check =
eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',
$sql_str);
if ($check) {
echo
"输入非法注入内容!";
exit
();
} else {
return
$sql_str;
}
}
function checkurl() { //检查来路
if
(preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) !==
preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])) {
header("Location:
http://www.maidq.com");
exit();
}
}
}
?>
mysql 12142_php连接mysql的类mysql.class.php相关推荐
- mysql远程连接错误10038--navicat for mysql (10038)
mysql远程连接错误10038--navicat for mysql (10038) 转载:http://blog.csdn.net/chana1101/article/details/396414 ...
- centos mysql拒绝连接失败_CentOS下mysql远程连接的失败的解决方法
mysql远程连接失败的解决方法(CentOS版) (1)先将mysql服务停掉 # /etc/init.d/mysqld stop (2)查看mysql配置文件 # vi /etc/my.cnf 特 ...
- centos7.3允许mysql远程连接_Centos7.3 安装Mysql和远程登录到Mysql-Go语言中文社区
1.首先在官网https://dev.mysql.com/downloads/mysql/,下载相应rpm文件到Centos本地 我选择的是正式发布版,选择对应的系统版本. 点击download 点击 ...
- mysql左连接_面试考MySQL性能优化,一个问题就干趴下了!
MySQL作为最流行的关系型数据库管理系统,重要性不言而喻.面试时它也是重点考察对象之一,估计大家都有过被MySQL相关问题支配的经历: 如何理解MySQL中加锁原理以及最终死锁形成的原因 ? 介绍一 ...
- openstack mysql 故障_Openstack mysql自发连接错误2006,“mysql服务器已经离开
我正在openstack ansible部署上运行openstackqueens,最近我发现很多组件,比如nova&Neuton,开始在日志中抛出以下错误堆栈,一切正常,但是这个错误让我担心, ...
- tomca7.0 mysql配置连接池_tomcat7.0+mysql连接池配置
1.Tomcat 中直接使用的方法: 在conf/server.xml下的节点里配置resource,例如: auth="Container" type="javax.s ...
- centos mysql 远程连接_Linux下开启MySQL的远程连接
Linux下开启MySQL的远程连接 基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限.下面是基本的步骤: 1.登录到mysql中,为root进行远程访问的 ...
- mysql 杀掉连接_批量杀死MySQL连接的几种方法
方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql select conca ...
- mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...
mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...
最新文章
- 设计模式之装饰模式(Decorator)摘录
- 系统需要联网吗_气体灭火系统储气瓶上的保险销需要拔掉吗?
- 如何替换Maven下载依赖时使用的仓库地址
- CLS/CLR、c#(等语言)、托管、元数据、程序集 CLR学习第二课
- android support v7 v13,Android support V3 v7 v13的区别
- 2012届华为上机考试题目与参考答案
- Oracle查询优化改写技巧与案例总结三
- 蓝宝石rx580怎么超频_【蓝宝石 RX580 8G D5 超白金 OC 显卡使用总结】游戏|界面|按钮|频率_摘要频道_什么值得买...
- 一篇文章理清产品、运营、营销之间的概念和关系
- FindMeChat(盲盒社交)-匿名聊天-好玩有趣的社交平台
- 清理注册表 php,如何彻底清理注册表?小编教你清理注册表操作方法
- 屏幕正中间浮窗html,HTML 纯css浮窗居中和打开or关闭
- cpuz检测硬件真假_难道CPU真的没有真假,只有好坏?
- 经纬度换算数值_如何在Excel中将经纬度数值转换成度分秒
- 月薪25K-35K|格灵研究院招聘算法工程师、Java架构师
- 阿里云RDS数据库备份迁移遇到的问题
- IT人士必去的10个网站
- ip地址错误解决方法
- 名悦集团:销售员不建议你全款买车的真正理由
- 四旋翼飞行器设计指南(原理、程序、电机资料)
热门文章
- linux 修改权限 anyone,linux 进程管理工具
- C语言程序练习-L1-015 跟奥巴马一起画方块 (15分)
- virtualbox安装时发生严重错误_Docker 安装(windows 10)
- 2010年北京大学计算机研究生机试真题
- 06-机器学习.数据分析.数据挖掘的区别于联系
- AtCoder Grand Contest 008: Contiguous Repainting(思维)
- android 视频监控相关(打包下载)
- 【WebGoat笔记】--- Cross-Site Scripting(XSS)
- 解决问题 “You don't have permission to access /index.html on this server.”
- [python] 使用scikit-learn工具计算文本TF-IDF值