`

mysql连接数据库的基本类文件

    博客分类:
  • PHP
 
阅读更多

 /*
 * Created on 2010-10-21
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
 class mysql_class
 {
 	private $host;
 	private $user;
 	private $pwd;
 	private $data;
 	private $charset;
 	public  $conn;

	//=====构造函数,用于初始化=====
 	function __construct($host, $user, $pwd, $data, $charset)
 	{
 		$this->host = $host;
 		$this->user = $user;
 		$this->pwd  = $pwd;
 		$this->data = $data;
 		$this->charset   = $charset;
 		$this->connect();
 	}

 	//====连接数据库====
 	function connect()
 	{
        $this->conn = @mysql_connect($this->host, $this->user, $this->pwd) or die("连接数据库错误!<br>".$this->error());
        mysql_select_db($this->data, $this->conn) or die("该数据库(".$this->data.")不存在!");
        mysql_query("set names ".$this->charset);
 	}

 	//===查询数据表===
 	function query($sql, $type='')
 	{
 		if(!$query = mysql_query($sql, $this->conn)) $this->show("error:", $sql);
		return $query;
 	}

 	//===提示查询数据表错误信息===
 	function show($message='', $sql='')
 	{
		if(!$sql) echo "{$message}查询语句不能为空";
		else echo $message."".$sql;
 	}

 	//===返回前一次 MySQL 操作所影响的记录总行数===
    function affected_rows() {
		return mysql_affected_rows();
	}

	//===返回$row条记录的第$fields个字段值($fields可以是数字或字段名称)===
	function result($query, $row=0, $fields=0)
	{
		$row = abs($row);
		if(is_numeric($fields)) $fields = abs($fields);
		if($row >= $this->num_rows($query)) $row = $this->num_rows($query);
		if($fields >= $this->num_fields($query)) $fields = $this->num_fields($query);
		return mysql_result($query,$row,$fields);
	}

	//===返回上一步 INSERT 操作产生的 ID值===
	function insert_id()
	{
		return mysql_insert_id($this->conn);
	}

	//===释放内存空间===
	function free_result($query)
	{
		return mysql_free_result($query);
	}

    /**
     * 用于统计
     */
    function getAll($sql)
    {
        $res = $this->query($sql);
        if ($res !== false)
        {
            $arr = array();
            while ($row = mysql_fetch_assoc($res))
            {
                $arr[] = $row;
            }
            return $arr;
        }
        else
        {
            return false;
        }
    }

    function getRow($sql, $limited = false)
    {
        if ($limited == true)
        {
            $sql = trim($sql . ' LIMIT 1');
        }

        $res = $this->query($sql);
        if ($res !== false)
        {
            return mysql_fetch_assoc($res);
        }
        else
        {
            return false;
        }
    }

    function getCol($sql)
    {
        $res = $this->query($sql);
        if ($res !== false)
        {
            $arr = array();
            while ($row = mysql_fetch_row($res))
            {
                $arr[] = $row[0];
            }
            return $arr;
        }
        else
        {
            return false;
        }
    }

    function getOne($sql, $limited = false)
    {
        if ($limited == true)
        {
            $sql = trim($sql . ' LIMIT 1');
        }

        $res = $this->query($sql);
        if ($res !== false)
        {
            $row = mysql_fetch_row($res);
            if ($row !== false)
            {
                return $row[0];
            }
            else
            {
                return '';
            }
        }
        else
        {
            return false;
        }
    }

    /**
     *  添加一条记录
     *
     *  @author Garbin
     *  @param  array $data
     *  @return mixed
     */
    function add($table, $data, $compatible = false)
    {
        $id = '';
        if (empty($data))
        {
            return false;
        }
        $insert_info = $this->_getInsertInfo($data);
        $mode = $compatible ? 'REPLACE' : 'INSERT';

        $this->query("{$mode} INTO {$table} {$insert_info['fields']} VALUES{$insert_info['values']}");
        $insert_id = $this->insert_id();
        if ($insert_id)
        {
            if ($insert_info['length'] > 1)
            {
                for ($i = $insert_id; $i < $insert_id + $insert_info['length']; $i++)
                {
                    $id[] = $i;
                }
            }
            else
            {
                /* 添加单条记录 */
                $id = $insert_id;
            }
        }

        return $id;
    }

    /**
     *  获取插入的数据SQL
     *
     *  @author Garbin
     *  @param  array $data
     *  @return string
     */
    function _getInsertInfo($data)
    {
        reset($data);
        $fields = array();
        $values = array();
        $length = 1;
        if (key($data) === 0 && is_array($data[0]))
        {
            $length = count($data);
            foreach ($data as $_k => $_v)
            {
                foreach ($_v as $_f => $_fv)
                {
                    $is_array = is_array($_fv);
                    ($_k == 0 && !$is_array) && $fields[] = '`'.$_f.'`';
                    !$is_array && $values[$_k][] = "'". addslashes(stripslashes($_fv)) . "'";
                }
                $values[$_k] = '(' . implode(',', $values[$_k]) . ')';
            }
        }
        else
        {
            foreach ($data as $_k => $_v)
            {
                $is_array = is_array($_v);
                !$is_array && $fields[] = '`'.$_k.'`';
                !$is_array && $values[] = "'" . addslashes(stripslashes($_v)) . "'";
            }
            $values = '(' . implode(',', $values) . ')';
        }
        $fields = '(' . implode(',', $fields) . ')';
        is_array($values) && $values = implode(',', $values);

        return compact('fields', 'values', 'length');
    }

	//===返回 MySQL 服务器的版本号===
	function get_server_info()
	{
		return @mysql_get_server_info($this->conn);
	}

	//===关闭数据库连接===
	function close()
	{
		return @mysql_close($this->conn);
	}

	//===返回数据库的总记录数===
	function num_rows($query)
	{
		return @mysql_num_rows($query);
	}

	//===返回数据表的总字段数===
	function num_fields($query)
	{
		return @mysql_num_fields($query);
	}

	//===返回根据从结果集取得的行生成的数组===
	function fetch_array($query, $type='MYSQL_BOTH')
	{
		//如果$type='MYSQL_BOTH'时,返回是即是数字数组,又是关联数组
		//如果$type='MYSQL_NUM'时,相当于mysql_fetch_row()函数,返回数字数组
		//如果$type='MYSQL_ASSOC'时,相当于mysql_fetch_assoc()函数,返回关联数组
		return mysql_fetch_array($query, $type);
	}
 }

 
分享到:
评论

相关推荐

    mysql连接数据库。。jar架包

    1. **安装驱动**:将"mysql连接数据库"中的jar文件(例如`mysql-connector-java-x.x.x.jar`)添加到MyEclipse的类路径中。这可以通过"构建路径" -&gt; "库" -&gt; "添加外部JARs"来完成,选择对应的jar文件,点击"确定...

    一个mysql数据库连接类

    这个“一个mysql数据库连接类”就是这样一个工具,它允许开发者更高效、灵活地管理MySQL数据库连接。 首先,我们要理解数据库连接类的概念。在面向对象编程中,类是定义对象特性和行为的模板。在这个特定的场景中,...

    c# mysql数据库连接池实现

    在`Startup.cs`文件中,配置服务以使用MySQL数据库提供者,并启用连接池。 ```csharp using Microsoft.EntityFrameworkCore; using Pomelo.EntityFrameworkCore.MySql.Infrastructure; public void ...

    mysql连接数据库jar包

    标题中的“mysql连接数据库jar包”特指的是`mysql-connector-java`,这是MySQL官方提供的JDBC驱动程序。这个JAR文件包含了MySQL Connector/J,它是MySQL与Java应用程序之间的接口。当你在Java项目中使用这个JAR文件...

    MySQL API连接数据库

    在VC6.0环境下,我们可以利用MFC(Microsoft Foundation Classes)库来构建C++应用程序,并通过MySQL API实现对MySQL数据库的连接、查询和其他操作。以下是关于这个主题的详细知识: 1. **MySQL API介绍** - MySQL...

    VB6.0连接MySQL数据库

    在信息技术领域,VB6.0...通过以上步骤,新手开发者可以尝试使用VB6.0连接MySQL数据库,并进行基本的数据库操作。随着实践的积累,对数据库操作的理解会更加深入,从而能够在应用程序中更好地管理和利用数据资源。

    C++连接mysql数据库 源代码

    1. **MySQL C++ Connector**: 连接MySQL数据库时,通常会使用MySQL官方提供的C++ Connector,这是一个用于C++应用程序的数据库驱动程序,它提供了与MySQL服务器通信的接口。通过该接口,C++程序能够执行SQL查询,...

    unity连接Mysql数据库的代码和需要的dll文件

    接下来,我们来看一下`Unity连接Mysql连接代码.txt`中可能包含的代码示例。通常,这会是使用C#编写的一个脚本,用于创建数据库连接、执行SQL语句和处理返回结果。以下是一个基本的示例: ```csharp using System; ...

    最简洁的delphi连接mysql数据库

    5. **User**: 连接数据库的用户名。 6. **Password**: 用户密码。 7. **ConnectionString**: 可以在这里设置所有连接属性,以字符串形式提供。 在配置好连接后,你可以通过TSQLDataset组件来执行SQL查询,比如...

    比较常用的mysql数据库连接类.zip

    一款比较常用的mysql php的数据库连接类文件代码,这款连接类支持pconnect与mysql_connect来连接,用户可以根据自己的WEB应用类型来处理作选择,小伙伴们可以自己下载修改使用。

    MySql连接数据库(方法、代码、用到的所有组件)

    以下是对MySQL连接数据库涉及的知识点的详细说明: 1. **连接方式**: - **命令行客户端**:这是最基础的连接方式,通过MySQL的命令行界面输入SQL语句与数据库交互。 - **图形化界面工具**:如MySQL Workbench、...

    MySQL数据库文件存放位置

    MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其在服务器上的安装和配置涉及到多个关键步骤,其中数据库文件的存放位置是运维人员需要了解的重要信息。本文将深入探讨MySQL数据库文件的存储路径,以及...

    php-mysql数据库连接操作类.zip

    分享一篇可以记录错误日志的mysql数据库连接类文件, 包含是否开启错误记录;测试阶段,显示所有错误,具有安全隐患,默认关闭;发现错误是否立即终止,默认true;调试中使用,sql语句出错时会自动打印出来。 

    MT4连接MYSQL数据库的例子

    为了连接到MySQL数据库,我们可以使用第三方库,例如“MQLMySQL for MQL4”,这个库文件包含了连接和操作MySQL数据库所需的函数。 安装MQLMySQL库后,在MT4的MetaEditor中创建一个新的MQL4脚本或EA。在代码中,我们...

    DBeaver连接mysql数据库图文教程

    **DBeaver 连接 MySQL 数据库的详细步骤** DBeaver 是一款强大的数据库管理工具,因其免费、开源且支持多种数据库的特点,深受开发者和DBA的青睐。它提供了直观的用户界面,使得数据库的管理和操作变得更加简单。...

    mysql数据库连接驱动包.rar

    当你下载并解压“mysql数据库连接驱动包.rar”后,你会得到一个包含JDBC驱动的JAR文件,例如`mysql-connector-java-x.x.x.jar`,其中x.x.x代表具体的版本号。这个JAR文件包含了所有必要的类和资源,使得Java应用程序...

    Android 实现连接MySQL数据库

    提供的"TestDemo"文件可能是包含一个简单的Android应用示例,演示了如何连接到MySQL数据库并进行数据交互。这个示例可能包含了网络请求、JSON解析以及UI展示的相关代码,你可以参考该项目中的实现方法。 总的来说...

    Oracle mysql 连接数据库的context.xml配置文件

    Oracle mysql 连接数据库的context.xml配置文件

    C# 连接mysql数据库

    在提供的信息中提到了"MySQLDriverCS.dll",这是一个用于.NET的MySQL连接器,它使得C#能够通过ODBC或ADO.NET接口与MySQL通信。安装这个驱动后,我们就可以在C#项目中引用它,以便进行数据库操作。 以下是使用C#连接...

    c语言连接mysql数据库

    在我们做C项目用到mysql数据库时需要进行和mysql进行连接,而连接mysql的步骤中几乎时固定的,因此可以写在文件中保存以备用。(文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接...

Global site tag (gtag.js) - Google Analytics