`

PHP+MYSQL操作类

    博客分类:
  • PHP
阅读更多
class dbconn {
    var $conn = 0;
    function dbconn($dbhost,$dbuser,$dbpw,$dbname){ $this->conn = mysql_connect($dbhost,$dbuser,$dbpw);
        !$this->conn && $this->halt("Connect to MySQL failed");
        $serverinfo = mysql_get_server_info($this->conn);
        if ($serverinfo > '4.1' && $GLOBALS['charset']) {
            mysql_query("SET character_set_connection=".$GLOBALS['charset'].",character_set_results=".$GLOBALS['charset'].",character_set_client=binary",$this->conn);
        }
        if ($serverinfo > '5.0') {
            mysql_query("SET sql_mode=''",$this->conn);
        }
        if ($dbname && !@mysql_select_db($dbname,$this->conn)) {
            $this->halt('Cannot use database');
        }
    }
    function select_db($dbname){
        if (!@mysql_select_db($dbname,$this->conn)) {
            $this->halt('Cannot use database');
        }
    }
    function server_info(){
        return mysql_get_server_info($this->conn);
    }
    function insert_id(){
        $arr = $this->fetch_array('SELECT LAST_INSERT_ID() as id');
        return $arr["id"];
    }
    function get_value($SQL,$offset=0,$field=0){
        $rt = $this->fetch_all($SQL);
        if (isset($rt[$offset][$field])) {
            return $rt[$offset][$field];
        }
        return false;
    }
    function query($SQL,$method = null,$error = true){
        $query = mysql_query($SQL,$this->conn);
        !$query && $error && $this->halt('Query Error: '.$SQL);
        return $query;
    }
    function fetch_array($SQL){
        $query = $this->query($SQL);
        return mysql_fetch_array($query);
    }
    function fetch_all($SQL) {
        $arr = array();
        $query = $this->query($SQL);
        while($data = mysql_fetch_array($query)) {
            $arr[] = $data;
        }
        return $arr;
    }
    function affected_rows(){
        return mysql_affected_rows($this->conn);
    }
    function num_rows($SQL){
        $query = $this->query($SQL);
        if (!is_bool($query)) {
            return mysql_num_rows($query);
        }
        return 0;
    }
    function num_fields($SQL){
        $query = $this->query($SQL);
        return mysql_num_fields($query);
    }
    function escape_string($str){
        return mysql_escape_string($str);
    }
    function free_result(){
        $void = func_get_args();
        foreach ($void as $query) {
            if (is_resource($query) && get_resource_type($query)==='mysql result') {
                mysql_free_result($query);
            }
        }
        unset($void);
    }
    function close(){
        $this->free_result();
        return @mysql_close($this->conn);
    }
    function halt($msg=null){
        exit($msg.'<br /><br />'.$sql.'<br /> '.mysql_error());
    }
}

 

      刚刚完成了一个操作PHP的类,看了几天的PHP,感觉操作MYSQL果然很快,而且简单。不过有几个问题要注意:

1、数据库的编码

      数据库的创建与PHP脚本必须一致。在这个例子里我用的是UTF8,所以我创建的数据库默认编码是UTF8的。也可以用GBK或GB2312,看自己的需求。不过前提是一定要保持一致,大多数PHP+MYSQL的问题都是由于编码不一致。

2、WEB页面编码

     (1)PHP文件的编码也要非常注意。本例中使用的“UTF8”。所以我拿PHP文件用记事本打开是“ANSI”格式的,我就把它另存为“UTF8”格式的。如果是其他格式,就存为相应该的编码文件。不然页面会出现乱码。

    

     (2)PHP页面的编码可以用HTML标签指定,在charset后加入自己的编码;

    

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

 

 

     也可以在PHP脚本中使用。

   

  1. header("content-type:text/html; charset=utf-8");   

 

    (3)操作数据库时的编码,本例使用UTF8。

   

  1. mysql_query("set names utf8",$this->conn);  

 

    如果数据库使用的GBK,或GB2312,则换成相应的编码。

   

 

  1. <?php  
  2. class DBOperate{  
  3.     var $host;  
  4.     var $user;  
  5.     var $password;  
  6.     var $conn;  
  7.     var $db;  
  8.     /* 
  9.     *构造函数 
  10.     *@param $host 主机名 
  11.     *@param $user 数据库用户 
  12.     *@param $password 数据库密码 
  13.     *@param $db 当前使用的数据库名 
  14.     */  
  15.     function DBOperate($host,$user,$password,$db){  
  16.         $this->host=$host;  
  17.         $this->user=$user;  
  18.         $this->password=$password;  
  19.         $this->db=$db;  
  20.         $this->conn=mysql_connect($this->host,$this->user,$this->password)  
  21.                     or die("connect error:".mysql_error());  
  22.         mysql_select_db($this->db,$this->conn)  
  23.            or die("switch db error:".mysql_error());  
  24.         mysql_query("set names utf8",$this->conn);  
  25.     }  
  26.     /* 
  27.     *@param $sql 添加记录的语句 
  28.     *用于插入记录 
  29.     */  
  30.     function Add($sql){  
  31.         mysql_query($sql,$this->conn) or die("insert error:".mysql_error());  
  32.     }  
  33.     /* 
  34.     *@param $sql 更新记录的语句 
  35.     *用于更新记录 
  36.     */  
  37.     function Update($sql){  
  38.         mysql_query($sql,$this->conn) or die("update error:".mysql_error());  
  39.     }  
  40.     /* 
  41.     *@param $sql 删除记录的语句 
  42.     *用于删除记录 
  43.     */  
  44.     function Delete($sql){  
  45.         mysql_query($sql,$this->conn) or die("delete error:".mysql_error());  
  46.     }  
  47.     /* 
  48.     *@param $sql 查询记录的语句 
  49.     *@return $arrs 以一个数组的形式返回数据库中所有记录的结果集 
  50.     *结果如下:Array([0]=>Array(第一条记录) [1]=>Array(第二条记录)...) 
  51.     **/  
  52.     function getRecords($sql){  
  53.         $all=mysql_query($sql,$this->conn);  
  54.         $i=0;  
  55.         while($result=mysql_fetch_array($all)){  
  56.             $arrs[$i]=$result;  
  57.             $i++;  
  58.         }  
  59.         return $arrs;  
  60.     }  
  61.     /* 
  62.     *@param $sql 查询记录的语句 
  63.     *@return $arrs 以一个数组的形式返回所有字段的结果集 
  64.     *结果如下:Array([0]=>字段名 [1]=>字段名...) 
  65.     **/  
  66.     function getFields($sql){  
  67.         $all=mysql_query($sql,$this->conn);  
  68.         $i=0;  
  69.         while($result=mysql_fetch_field($all)){  
  70.             $arrs[$i]=$result->name;  
  71.             $i++;  
  72.         }  
  73.         return $arrs;  
  74.     }  
  75.     function Close(){  
  76.         mysql_close($this->conn);  
  77.     }  
  78. }  
  79. $db=new DBOperate("localhost","root","admin","mydb");  
  80. //$db->Add("insert into news values(null,'新闻依旧','无上智者',now())");   
  81. print_r($db->getRecords("select * from news"));  
  82. $result=$db->getFields("select * from news");  
  83. for($i=0;$i<count($result);$i++){  
  84.     echo $result[$i]."<br />";  
  85. }  
  86. $db->Close();  
  87. ?>  
  • 大小: 50.3 KB
分享到:
评论

相关推荐

    (第26讲) 制作自己的PHP+MYSQL的类

    在本课程中,我们主要探讨如何利用PHP与MySQL结合,创建一个自定义的数据库操作类。这是一项重要的技能,能够帮助开发者实现代码的模块化,提高程序的可维护性和复用性。 首先,"巩固学习常用MYSQL函数"这部分内容...

    php+mysql 新闻发布系统

    管理员可以通过后台登录,对新闻进行增删改查操作,这些操作会通过PHP脚本处理,并与MySQL数据库进行交互,确保数据的一致性和完整性。 4. **安全防护**:考虑到网站的安全性,PHP代码需要处理好SQL注入、XSS攻击等...

    PHP+MYSQL数据库表编辑类

    本主题聚焦于"PHP+MYSQL数据库表编辑类",它涉及到对数据库表的管理和操作,包括列表显示、分页、数据插入、删除以及修改等核心功能。下面将详细介绍这些知识点。 1. **数据库表编辑类**: 在PHP开发中,数据库表...

    php+mysql数据库操作类 v1.0

    《PHP+MySQL数据库操作类 v1.0:基础与实践》 在PHP开发中,数据库交互是不可或缺的一部分,尤其在动态网站的构建中,PHP与MySQL的结合使用为数据存储和检索提供了强大支持。本文将深入探讨“php+mysql数据库操作类...

    php + mysql 个人博客系统

    【PHP + MySQL 个人博客系统】 在Web开发领域,PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适用于服务器端编程,而MySQL则是一款流行的关系型数据库管理系统,两者结合可以构建功能强大的...

    PHP100视频教程 26:制作自己的PHP+MYSQL的类

    【PHP100视频教程 26:制作自己的PHP+MYSQL的类】是一个关于PHP编程和MySQL数据库操作的深入学习资源。本教程旨在帮助学员巩固MySQL的常用函数使用,并通过面向对象的方式,利用PHP创建一个自定义的MySQL类,以实现...

    PHP+MYSQL+PHP封装好的应用类

    在PHP中封装MySQL操作,通常会创建一个DB类,这个类包含了连接数据库、执行SQL语句、处理结果集等一系列方法。例如,我们可以有一个`connect()`方法用于建立与MySQL服务器的连接,`query()`方法用于执行SQL查询,`...

    采用Jquery+Ajax+PHP+MySQL实现分类列表管理

    在本项目中,我们采用了JQuery、Ajax、PHP和MySQL技术来实现一个分类列表的管理功能。这个系统的核心是利用Ajax实现前后端的无刷新通信,以提高用户体验和交互效率。接下来,我们将深入探讨这些技术及其在项目中的...

    封装好的php+mysql分页类

    这个"封装好的php+mysql分页类"提供了一种高效且可复用的方法来实现这一目标。以下是对该分页类的详细解析: 1. **类结构**: 分页类通常包含一些关键属性,如每页显示的记录数($limit)、当前页数($currentPage...

    《PHP+MySQL动态网站开发基础教程》

    通过学习MySQL,你将了解如何创建数据库、表,并掌握SQL语言,包括数据的插入、查询、更新和删除操作。本书将引导你进行数据库设计,学习如何使用索引优化查询性能,以及如何确保数据的安全性。 在实际开发中,PHP...

    php+mysql网上购物系统

    PHP通过接收到的前端请求,调用相应的业务逻辑函数,与MySQL数据库进行交互,完成数据的增删改查操作。此外,安全性是网上购物系统不可忽视的一环,包括防止SQL注入、XSS攻击等,需要在编写代码时做好充分的防护。 ...

    php+mysql+bootstrap+jquery实现增删查改的前后端

    在本项目中,我们主要探讨如何使用PHP、MySQL、Bootstrap和jQuery这四个技术栈来构建一个功能完善的前后端系统,实现数据的增删查改(CRUD)操作。以下是关于这些技术及其相互配合的详细说明。 **PHP**: PHP是一种...

    基于PHP+MySQL实现分页技术

    基于PHP+MySQL实现分页技术 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+...本案例使用PHP 7中的PDO数据对象对MySQL数据库进行操作,通过使用PDO对页码、偏移量、URL等变量进行传递,从而实现分页条的制作。

    PHP5+MYSQL网页系统开发设计

    类、对象、继承、封装和多态等OOP特性是PHP5的核心内容,它们能够帮助开发者创建复杂的应用程序。其次,PHP5强化了错误处理和异常处理机制,使开发者能更好地控制程序的运行流程,避免因错误导致的系统崩溃。此外,...

    php+mysql图书管理系统源代码

    4. 图书管理:管理员可以添加、修改和删除图书信息,这些操作同样通过PHP与MySQL的交互完成。 五、安全性与优化 1. SQL注入防护:通过预编译的SQL语句和参数绑定,防止恶意用户输入破坏数据库。 2. 输入验证:对...

    php+mysql商务网站模板

    【PHP+MySQL商务网站模板详解】 在Web开发领域,PHP和MySQL是两个不可或缺的重要组成部分,它们共同构建了许多大型和小型的电子商务网站。本教程将深入探讨"PHP+MySQL商务网站模板",帮助你理解如何利用这两种技术...

    PHP+mysql的新闻发布系统

    在新闻系统中,MySQL用于存储新闻标题、内容、发布时间等信息,通过SQL查询语句进行数据的增删改查操作。 **3. 数据库设计** 一个简单的新闻发布系统可能包含以下表: - `news`:存储新闻的基本信息,如`id`(主键...

    php+mysql-购物程序

    本程序是PHP+MYSQL开发而成,在LINUX+PHP+MYSQL上运行 1. 修改程序根目录下的 PACH文件的绝对路径 2. 将程序目录下的所有文件上传到服务器的 iSHOP下 3. 在浏览器地址栏里输入:http://主页地址/ishop/...

    php+mysql网站

    - PHP 5引入了OOP特性,如类、对象、继承、封装、多态等,使代码更易维护和扩展。 - MySQLi或PDO提供了面向对象的接口,如`mysqli_object`或`PDOObject`,方便以面向对象方式操作数据库。 6. **模板引擎** - ...

    HTML+CSS+JavaScript+php+mysql帮助手册(内含html5+css3+javascript5帮助手册)

    HTML、CSS、JavaScript、PHP和MySQL是Web开发中不可或缺的核心技术。这本综合性的帮助手册提供了全面的指导,涵盖了从构建网页结构到处理服务器端逻辑再到数据库管理的全过程。 HTML(HyperText Markup Language)...

Global site tag (gtag.js) - Google Analytics