`

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数据库是世界上最流行的开源关系型数据库管理系统之一,其在服务器上的安装和配置涉及到多个关键步骤,其中数据库文件的存放位置是运维人员需要了解的重要信息。本文将深入探讨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,调用连接...

    php链接mysql数据库类

    此PHP类提供了一种封装良好的方式来管理与MySQL数据库的交互,通过定义一系列方法来简化数据库操作,如连接数据库、执行SQL语句、错误处理等。开发者可以通过实例化此类并调用相应的方法轻松地完成数据库相关的工作...

Global site tag (gtag.js) - Google Analytics