本文章提供了数据库连接实例,主要是讲php mysql数据相关操作,有需要的朋友可以使用看看,实例代码如下:
- <?php
 - class mysql {
 - private $db_host; //主机地址
 - private $db_user; //用户名
 - private $db_pass; //连接密码
 - private $db_name; //名称
 - private $db_charset; //编码
 - private $conn;
 - public $debug=false;//调试开关,默认关闭
 - private $query_id; //用于判断sql语句是否执行成功
 - private $result; //结果集
 - private $num_rows; //结果集中行的数目,仅对select有效
 - private $insert_id; //上一步 insert 操作产生的 id
 - // 构造/析构函数
 - function __construct ($db_host,$db_user,$db_pass,$db_name,$db_charset,$conn) {
 - $this->db_host = $db_host ;
 - $this->db_user = $db_user ;
 - $this->db_pass = $db_pass ;
 - $this->db_name = $db_name ;
 - $this->db_charset = $db_charset ;
 - $this->conn = $conn ;
 - $this->connect();
 - }
 - function __destruct () {
 - @mysql_close($this->conn);
 - }
 - // 连接/选择数据库
 - public function connect () {
 - if ($this->conn == 'pconn') {
 - @$this->conn = mysql_pconnect($this->db_host,$this->db_user,$this->db_pass);
 - } else {
 - @$this->conn = mysql_connect($this->db_host,$this->db_user,$this->db_pass);
 - }
 - if (!$this->conn) {
 - $this->show_error('数据库-连接失败:用户名或密码错误!');
 - }
 - if (!@mysql_select_db($this->db_name,$this->conn)) {
 - $this->show_error("数据库-选择失败:数据库 $this->db_name 不可用");
 - }
 - mysql_query("set names $this->db_charset");
 - return $this->conn;
 - }
 - // query方法
 - public function query ($sql) {
 - if ($this->query_id) $this->free_result();
 - $this->query_id = @mysql_query($sql,$this->conn);
 - if (!$this->query_id) $this->show_error("sql语句 <b>"$sql"</b> 执行时遇到错误");
 - return $this->query_id;
 - }
 - // 显示详细错误信息
 - public function show_error ($msg) {
 - if($this->debug){
 - $errinfo = mysql_error();
 - echo "错误:$msg <br/> 返回:$errinfo<p>";
 - }else{
 - echo '<p>出现错误!<p>';
 - }
 - }
 - // 获得query执行成功与否的信息
 - public function get_query_info($info){
 - if ($this->query_id) {
 - echo $info;
 - }
 - }
 - // 查询所有
 - public function findall ($table_name) {
 - $this->query("select * from $table_name");
 - }
 - // mysql_fetch_array
 - public function fetch_array () {
 - if ($this->query_id) {
 - $this->result = mysql_fetch_array($this->query_id);
 - return $this->result;
 - }
 - }
 - // ......
 - public function fetch_assoc () {
 - if ($this->query_id) {
 - $this->result = mysql_fetch_assoc($this->query_id);
 - return $this->result;
 - }
 - }
 - public function fetch_row () {
 - if ($this->query_id) {
 - $this->result = mysql_fetch_row($this->query_id);
 - return $this->result;
 - }
 - }
 - public function fetch_object () {
 - if ($this->query_id) {
 - $this->result = mysql_fetch_object($this->query_id);
 - return $this->result;
 - }
 - }
 - // 获取 num_rows
 - public function num_rows () {
 - if ($this->query_id) {
 - $this->num_rows = mysql_num_rows($this->query_id);
 - return $this->num_rows;
 - }
 - }
 - // 获取 insert_id
 - public function insert_id () {
 - return $this->insert_id = mysql_insert_id();
 - }
 - // 显示共有多少张表
 - public function show_tables () {
 - $this->query("show tables");
 - if ($this->query_id) {
 - echo "数据库 $this->db_name 共有 ".$this->num_rows($this->query_id)." 张表<br/>";
 - $i = 1;
 - while ($row = $this->fetch_array($this->query_id)){
 - echo "$i -- $row[0]<br/>";
 - $i ++;
 - }
 - }
 - }
 - // 显示共有多少个数据库
 - public function show_dbs(){
 - $this->query("show databases");
 - if ($this->query_id) {
 - echo "共有数据库 ".$this->num_rows($this->query_id)." 个<br/>";
 - $i = 1;
 - while ($this->row = $this->fetch_array($this->query_id)){
 - echo "$i -- ".$this->row[database]."<br />";
 - $i ++;
 - }
 - }
 - }
 - // 删除数据库:返回删除结果
 - public function drop_db ($db_name='') {
 - if ($db_name == '') {
 - $db_name = $this->db_name;//默认删除当前数据库
 - $this->query("drop database $db_name");
 - }else {
 - $this->query("drop database $db_name");
 - }
 - if ($this->query_id) {
 - return "数据库 $db_name 删除成功";
 - }else {
 - $this->show_error("数据库 $db_name 删除失败");
 - }
 - }
 - // 删除数据表:返回删除结果
 - public function drop_table ($table_name) {
 - $this->query("drop table $table_name");
 - if ($this->query_id) {
 - return "数据表 $table_name 删除成功";
 - }else {
 - $this->show_error("数据表 $table_name 删除失败");
 - }
 - }
 - // 创建数据库
 - public function create_db ($db_name) {
 - $this->query("create database $db_name");
 - if($this->query_id){
 - return "数据库 $db_name 创建成功";
 - }else {
 - $this->show_error("数据库 $db_name 创建失败");
 - } //开源代码Vevb.com
 - }
 - // 获取数据库版本
 - public function get_info(){
 - echo mysql_get_server_info();
 - }
 - // 释放内存
 - public function free_result () {
 - if ( @mysql_free_result($this->query_id) )
 - unset ($this->result);
 - $this->query_id = 0;
 - }
 - } // end class
 - ?>
 
下面提供一款自动选择数据库远程或本地连接代码:
- <?php
 - // 包含mysql操作类
 - include_once 'mysql.class.php';
 - // 本地mysql数据
 - $mysql_local_data = array('db_host'=>'localhost',
 - 'db_user'=>'root',
 - 'db_pass'=>'root',
 - 'db_name'=>'test');
 - // 远程mysql数据
 - $mysql_remote_data = array('db_host'=>'61.183.41.178',
 - 'db_user'=>'xxx',
 - 'db_pass'=>'xxx',
 - 'db_name'=>'xxx');
 - // 公用数据
 - $tb_prefix = 'php95_';
 - $db_charset = 'utf-8';
 - //本地连接成功则实例化本地mysql类,否则连接远程数据库并实例化mysql类
 - if (@mysql_connect($mysql_local_data[db_host], $mysql_local_data[db_user], $mysql_local_data[db_pass]))
 - $db = new mysql($db_host, $mysql_local_data[db_user], $mysql_local_data[db_pass], $mysql_local_data[db_name], $db_charset, $conn);
 - else
 - $db = new mysql($mysql_remote_data[db_host], $mysql_remote_data[db_user], $mysql_remote_data[db_pass], $mysql_remote_data[db_name], $db_charset, $conn);
 - $db->show_tables(); //测试:显示当前数据库下的所有表名
 - ?>
 
假设我们要在test.php文件中操作虚拟主机的数据库,则首先要在本地调试,那么必然要连接本地、远程两个不同的数据库,问题:怎么让test.php自动识别当下该连接本地还是远程数据库呢?
新闻热点
疑难解答