Mysql的底层封装
class db_mysql { private $db; private $dbhost;//数据库主机名 private $dbuser;//数据库用户名 private $dbpw;//数据库密码 private $dbname;//数据库名字 private $pconnect;//0 =>不持久连接, 1=> 持久连接 private $charset;//数据库编码 var $query_num=0;//查询次数 public function __construct($dbhost,$dbuser,$dbpw,$dbname,$pconnect=0,$charset="utf8") { $this->dbhost=$dbhost; $this->dbuser=$dbuser; $this->dbpw=$dbpw; $this->dbname=$dbname; $this->pconnect=$pconnect; $this->charset=$charset; $this->connect();//初始化数据库链接 } //数据库链接 private function connect() { if (!function_exists('mysql_connect')||!function_exists('mysql_pconnect')){ $this->halt('服务器PHP不支持MySql数据库!'); } if(!empty($this->dbhost)|| !empty($this->dbuser)||$this->dbhost!=="" ||$this->dbuser!=="") { if($this->pconnect==1){ $this->db=@mysql_pconnect($this->dbhost,$this->dbuser,$this->dbpw,true); if(!$this->db){ $this->halt("数据库持久连接失败,可能是数据库用户名或密码错误!"); } } else { $this->db=@mysql_connect($this->dbhost,$this->dbuser,$this->dbpw); if(!$this->db){ $this->halt("数据库连接失败,可能是数据库用户名或密码错误!"); } } } if ($this->version() >'4.1'){ mysql_query("set names ".$this->charset,$this->db); } if(!empty($this->dbname)||$this->dbname!=""){ if(!mysql_select_db($this->dbname,$this->db)){ $this->halt("数据库选择失败,可能是数据库名错误!"); } } } //查询执行 function query($sql, $unbuffered = false) { $func = $unbuffered ? 'mysql_unbuffered_query' : 'mysql_query'; $query = @$func($sql); if(!$query){ $this->halt('Query 错误 '.$sql); } $this->query_num++; return $query; } //选择数据库 function select_db($dbname) { return mysql_select_db($dbname, $this->db); } //取单一数据(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH) function fetch($query, $result_type=MYSQL_ASSOC) { return mysql_fetch_array($query, $result_type); } //取结果集数据(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH) function fetch_array($query, $result_type=MYSQL_BOTH) { return mysql_fetch_array($query, $result_type); } function fetch_row($query) { return mysql_fetch_row($query); } function fetch_field($query) { return mysql_fetch_field($query); } function fetch_assoc($query) { return mysql_fetch_assoc($squery); } //返回根据所取得的行生成的对象* function fetch_object($result) { return mysql_fetch_object($result); } //返回上次UPDATE更改的行数,上次DELETE删除的行数,或上次INSERT语句插入的行数。 function affected_rows() { return mysql_affected_rows($this->db); } //返回结果集 function result($query, $row = 0, $field = 0) { return @mysql_result($query, $row, $field); } //释放结果集 function free_result($query) { return mysql_free_result($query); } //返回行数 function num_rows($query) { return mysql_num_rows($query); } //获得结果集中字段的数目 function num_fields($query) { return mysql_num_fields($query); } //返回插入的ID值 function insert_id() { return ($id = mysql_insert_id($this->db)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); } //错误信息 function error() { return (($this->db) ? mysql_error($this->db) : mysql_error()); } //错误代码 function errno() { return intval(($this->db) ? mysql_errno($this->db) : mysql_errno()); } //获取数据库版本 function version() { if(empty($this->version)) { $this->version = mysql_get_server_info($this->db); } return $this->version; } //列出 MySQL 数据库中的表 function get_table_names($dbname='') { if(empty($dbname)) { $db_name=$this->dbname; } else { $db_name=$dbname; } $result = mysql_list_tables($db_name); $num_tables = @mysql_numrows($result); for ($i = 0; $i < $num_tables; $i++) { $tables[] = mysql_tablename($result, $i); } mysql_free_result($result); return $tables; } function data_seek($result, $offset) { return mysql_data_seek($result, $offset); } // 对特殊字符进行过滤value 值 function escape_string($str){ return mysql_real_escape_string($str,$this->db) or mysql_real_escape_string($str); } //关闭数据库 function close() { return mysql_close($this->db); } // function get_client_info() { return mysql_get_client_info($this->db); } // function get_proto_info() { return mysql_get_proto_info($this->db); } // function get_host_info() { return mysql_get_host_info($this->db); } // function field_len($result, $i) { return mysql_field_len($result, $i); } // function field_name($result, $i) { return mysql_field_name($result, $i); } // function field_flags($result, $i) { return mysql_field_flags($result, $i); } // function get_fields_meta($result) { $fields = array(); $num_fields = mysql_num_fields($result); for ($i = 0; $i < $num_fields; $i++) { $field = mysql_fetch_field($result, $i); $field->flags = mysql_field_flags($result, $i); $field->orgtable = mysql_field_table($result, $i); $field->orgname = mysql_field_name($result, $i); $fields[] = $field; } return $fields; } //错误提示 private function halt($msg='') { $s=''; $error = $this->error(); $errorno = $this->errno(); $s.=""; if($this->db){ $Version=$this->version(); $s.="".$Version." "; } $s.="".$msg." "; $s.="".$error." "; $s.="".$errorno." "; die($s); } }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
1 个月前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
1 个月前
By DDD
R.E.P.O.最佳图形设置
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)
