php 连接 mysql数据库操作类

 更新时间:2016年11月25日 16:39  点击:2160
这是一款比较全的mysql操作类哦,昨天写了一个简单的连接mysql数据库代码,相对于这个来说,那个是最简单的了,这个是一款包括数据查询,更新,删除,等操作。

class mysql{

  private $db_host; //数据库主机
  private $db_user; //数据库用户名
  private $db_pwd; //数据库密码
  private $db_database; //数据库名
  private $conn; //数据库连接标识;
  private $sql; //sql执行的语句
  private $result; //query的资源标识符
  private $coding; //数据库编码,gbk,utf8,gb2312
  private $show_error = true; //本地调试使用,打印错误

  /**
   * 构造函数
   *
   * @access public
   * @parameter string $db_host   数据库主机
   * @parameter string $db_user   数据库用户名
   * @parameter string $db_pwd    数据库密码
   * @parameter string $db_database   数据库名
   * @parameter string $coding    编码
   * @return void
   */
  public function __construct($db_host, $db_user, $db_pwd, $db_database, $coding){
   $this->db_host = $db_host;
   $this->db_user = $db_user;
   $this->db_pwd =  $db_pwd;
   $this->db_database = $db_database;
   $this->coding = $coding;
   $this->connect();
  }

  /**
   * 链接数据库
   *
   * @access private
   * @return void
   */
  private function connect(){

   $this->conn = @mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
   if(!$this->conn){
    //show_error开启时,打印错误
    if($this->show_error){
     $this->show_error('错误提示:链接数据库失败!');
    }
   }

   if(!@mysql_select_db($this->db_database, $this->conn)){
    //打开数据库失败
    if($this->show_error){
     $this->show_error('错误提示:打开数据库失败!');
    }
   }

   if(!@mysql_query("set names $this->coding")){
    //设置编码失败
    if($this->show_error){
     $this->show_error('错误提示:设置编码失败!');
    }
   }
  }

  /**
   * 可执行查询添加修改删除等任何sql语句
   *
   * @access public
   * @parameter string $sql   sql语句
   * @return resource  资源标识符
   */
  public function query($sql){
   $this->sql = $sql;
   $result = mysql_query($this->sql, $this->conn);
   if(!$result){
    //query执行失败,打印错误
    $this->show_error("错误的sql语句:", $this->sql);
   }else{
    //返回资源标识符
    return $this->result = $result;
   }
  }

  /**
   * 查询mysql服务器中所有的数据库
   *
   * @access public
   * @return void
   */
  public function show_databases(){
   $this->query("show databases");
   //打印数据库的总数
   echo "现有数据库:" . mysql_num_rows($this->result);
   echo "<br />";
   $i = 1;
   //循环输出每个数据库的名称
   while($row=mysql_fetch_array($this->result)){
    echo "$i $row[database]" . "<br />";
    $i++;
   }
  }

  /**
   * 查询数据库下所有表名
   *
   * @access public
   * @return void
   */
  public function show_tables(){
   $this->query("show tables");
   //打印表的总数
   echo "数据库{$this->db_database}共有" . mysql_num_rows($this->result) . "张表:";
   echo "<br />";
   //构造数组下标,循环出数据库所有表名
   $column_name = "tables_in_" . $this->db_database;
   $i = 1;
   //循环输出每个表的名称
   while($row=mysql_fetch_array($this->result)){
    echo "$i $row[$column_name]" . "<br />";
    $i++;
   }
  }

  /**
   * 取得记录集,获取数组-索引和关联
   *
    * @access public
   * @return void
   */
  public function fetch_array(){
   return mysql_fetch_array($this->result);
  }

  /**
   * 简化select查询语句
   *
   * @access public
   * @parameter string $table  表名
   * @parameter string $field  字段名
   * @return resource
   */
  public function findall($table, $field = '*') {
   return $this->query("select $field from $table");
  }

  /**
   * 简化delete查询语句
   *
   * @access public
   * @parameter string $table    表名
   * @parameter string $condition  查询的条件
   * @return resource
   */
  public function delete($table, $condition) {
   return $this->query("delete from $table where $condition");
  }

  /**
   * 简化insert插入语句
   *
   * @access public
   * @parameter string $table  表名
   * @parameter string $field  字段名
   * @parameter string $value  插入值
   * @return resource
   */
  public function insert($table, $field, $value) {
   return $this->query("insert into $table ($field) values ('$value')");
  }

  /**
   * 简化update插入语句
   *
   * @access public
   * @parameter string $table      表名
   * @parameter string $update_content  更新的内容
   * @parameter string $condition    条件
   * @return resource
   */
  public function update($table, $update_content, $condition) {
   return $this->query("update $table set $update_content where $condition");
  }

  /**
   * 取得上一步 insert 操作产生的 id
   *
   * @access public
   * @return integer
   */
  public function insert_id() {
   return mysql_insert_id();
  }

  /**
   * 计算结果集条数
   *
   * @access public
   * @return integer
   */
  public function num_rows() {
   return mysql_num_rows($this->result);
  }

  /**
   * 查询字段数量和字段信息
   *
   * @access public
   * @parameter string $table  表名
   * @return void
   */
  public function num_fields($table) {
   $this->query("select * from $table");
   echo "<br />";
   //打印字段数
   echo "字段数:" . $total = mysql_num_fields($this->result);
   echo "<pre>";
   //mysql_fetch_field() 函数从结果集中取得列信息并作为对象返回。
   for ($i = 0; $i < $total; $i++) {
    print_r(mysql_fetch_field($this->result, $i));
   }
   echo "</pre>";
   echo "<br />";
  }

  /**
   * 输出sql语句错误信息
   *
   * @access public
   * @parameter string $message 提示信息
   * @return void
   */
  public function show_error($message='',$sql=''){
   echo "<fieldset>";
   echo "<legend>错误信息提示:</legend><br />";
   echo "<div style='font-size:14px; clear:both; font-family:verdana, arial, helvetica, sans-serif;'>";
   //打印错误原因
   echo "错误原因:" . mysql_error() . "<br /><br />";
   //打印错误信息
   //mysql_error() 函数返回上一个 mysql 操作产生的文本错误信息。
   echo "<div style='height:20px; background:#ff0000; border:1px #ff0000 solid'>";
   echo "<font color='white'>" . $message . "</font>";
   echo "</div>";
   //打印错误sql语句
   echo "<font color='red'><pre>" . $sql . "</pre></font>";
   echo "</div>";
   echo "</fieldset>";
  }
 }

//使用方法

$mysql = new mysql($dbhost, $dbuser, $dbpwd, $dbname, $coding);
?>

文章提供一款简单的mysql 查询数据库数据的代码,可以查询blog里面所有数据并且显示出来。
 代码如下 复制代码

session_start();
$conn=mysql_connect('localhost','root','root')or die('数据库连接错误');
mysql_select_db('demo',$conn);
mysql_query("set names 'gbk'");
$us=$_session['username'];
$selequery=mysql_query("select * from blog where author='$us' order by id desc")or die("查询失败");
?>

<?php while($selerow=mysql_fetch_array($selequery)){
 
?>
<form action="" method="post" name="modform">
  <table width="100%" border="1">
    <tr>
      <td width="100">作者:</td>
      <td><?php echo $_session['username']."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$selerow['redate'];?></td>
    </tr>
    <tr>
      <td width="100">留言标题:</td>
      <td><?php echo $selerow['title'];?></td>
    </tr>
    <tr>
      <td>留言内容:</td>
      <td><?php echo $selerow['content'];?></td>
    </tr>
      <tr>
      <td colspan="2" align="center"><input type="submit" value="修改" name="sub"></input></td>
    </tr>
  </table>
 </form>
  <br>
 
  <?php }?> 

 

 

<!--<?php
 for($i=1;$i<$selerow=mysql_num_rows($selequery);$i++){
  if($i<$selerow=mysql_num_rows($selequery)){?>
 
   <table><tr><td><?php echo $selerow['title'];?></td></tr></table>
   <hr color="red"></hr>
  <?php
  }else{?>
  <table></table>
<?php
 }}
 


 
 /*
 drop table if exists `blog`;
create table `blog` (
  `id` int(10) not null auto_increment,
  `author` varchar(50) not null,
  `title` varchar(50) not null,
  `content` text,
  `redate` date not null,
  primary key (`id`)
) engine=innodb auto_increment=5 default charset=gbk;

-- ----------------------------
-- records of blog
-- ----------------------------
insert into `blog` values ('1', 'admin', '我', '<p>呜呜呜</p>', '2010-07-31');
insert into `blog` values ('2', 'admin', '第五', '<p>我的</p>', '2010-07-31');
insert into `blog` values ('3', 'admin', '我的', '<p>去权威的物权法</p>', '2010-07-31');
insert into `blog` values ('4', '111111', '大武器', '<p>的弯曲的千万</p>', '2010-07-31');
 */

本教程是一款利用了ajax php在用户输入完用户名后,就会发送请求给php程序,然后查询数据,判断用户要注册的用户名是不是己经注册或存在重复了,及时的返回提示信息,以免用户填写了一大填表单后,突然提供用户名不能注册己被注册了,这样体验就不好了。本教程就是专门解决这个问题了,能快速的告诉你要注册的用户名是否可以注册。

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>ajax+php验证用户名重复代码实例</title>

 代码如下 复制代码

<script language="网页特效">
function createxmlhttprequest(){//创建xmlhttprequest对象
 if(window.activexobject){//ie
  try {
   return new activexobject("microsoft.xmlhttp");
  } catch(e){
   return;
  }
 }else if(window.xmlhttprequest){//mozilla,firefox
  try {
   return new xmlhttprequest();
  } catch(e){
   return;
  }
 }
}

function getrenews(value){//主调函数
 var xmlhttp=createxmlhttprequest();
 var url = "13.php?action=check&title="+value+"&mt="+math.random(300000);
 if (value==""){  
  return false ;
 }
 if (xmlhttp){
  callback = getreadystatehandler(xmlhttp);
  xmlhttp.onreadystatechange = callback;
  xmlhttp.open("get", url,true);
  xmlhttp.send(null);
 }
}

function getreadystatehandler(xmlhttp){//服务器返回后处理函数
 return function (){
  if(xmlhttp.readystate == 4){
   if(xmlhttp.status == 200){
       alert(xmlhttp.responsetext);
     if (xmlhttp.responsetext==1){
       document.getelementbyid("checkid").innerhtml="<font color='red'>对不起,用户名己存在!</font>";     
     }else{
      document.getelementbyid("checkid").innerhtml="可以注册";     
     }      
   }
  }
 }
}

</script>

</head>

<body>

 代码如下 复制代码
<table width="75%" border="0">
  <tr>
    <td width="12%">输入用户名</td>
    <td width="36%">   
      <input type="text" name="username" id="username" onblur="getrenews(this.value);" />
    </td>
    <td width="52%" id="checkid">&nbsp;</td>
  </tr>
</table>

</body>
</html>

把下面代码保存忝13.php

 代码如下 复制代码
<?
checkusername();
function checkusername()
{
 $title = trim($_get['title']);
 if( empty( $title ) )
 {
  return false;
 }
 else
 {
  mysql教程_connect('localhost','root','root');
  mysql_select_db('test');
  mysql_query("set names 'gb2312'");
  $sql = "select * from cn_user where username ='$title'";
  
  $row = mysql_query($sql);
  
  if( mysql_num_rows( $row ) )
  {
   echo 1;
  }
  else
  {
   return null;
  }
 }
}

/*
create table `test`.`cn_user` (
`id` int not null auto_increment ,
`username` varchar( 20 ) not null ,
`times` date null ,
primary key ( `id` )
) engine = myisam

插入数据

insert into `test`.`cn_user` (
`id` ,
`username` ,
`times`
)
values (
null , 'jimmy', null
), (
null , 'www.111cn.net', null
);

*/
?>

 

这款无限分类php 递归函数是一款php 与sql查询递归的方法,很简单就是查询一次当前分类没有没子类,如果有的话就再调用函数本身来操作,如果己经没有子类了就可以返回了。
 代码如下 复制代码
function createsortoptions ($selected=0,$parent_id=0,$n=-1)
{
global $db;
$sql = "select * from `@__article_sort` where `parent_id` = '{$parent_id}'";
$options = ";
static $i = 0;
if ($i == 0)
{
$options .= '<option value="0′ >请选择</option>';
}
$res = $db->query ($sql);
if ($res)
{
$n++;
while ($row = $db->fetch_assoc ($res))
{
$i++;
$options .="<option value='{$row['sort_id']}'";
if ($row['sort_id'] == $selected)
{
$options .=' selected ';
}
$options .=">".str_repeat(' ',$n*3).$row['sort_name']."</option> ";
$options .=createsortoptions ($selected,$row['sort_id'],$n);
}
}
return $options;
}

如果是用smarty模板的朋友可以如下调用

 代码如下 复制代码
//– $tpl->assign('sort_list',createsortoptions ());
//– $tpl->assign('sort_list',createsortoptions ($sort_id));

 

首页得了解一下,我们是怎么把mssql server的数据导入到mysql数据库的,首先要在你的机器上装上mssql server 2000,同时还要让你的机器支持php+apache+mysql或是php+iis+mysql,好了,有一这些我们就可以开始导入数据了。

//mssql server与php连接

 代码如下 复制代码
$mcn = mssql_connect('127.0.0.1','sa','1');
mssql_select_db('hb',$mcn);

//mysql数据库连接

 代码如下 复制代码
$conn = mysql_connect('localhost','root','a') or die('mysql server 连接失败');
mysql_select_db('sa',$conn);
 代码如下 复制代码
$mssql = "select * from bc ";
$msquery = mssql_query( $mssql ); //查询mssql server 的数据保存到数据
if( mssql_num_rows( $msquery ) )
{
 while( $rs = mssql_fetch_array( $msquery ) )
 {
  $mysql ="insert into vv(id,title) values('$rs[id]','$rs[title]')"; //mysql查询语句
  mysql_query($mysql);//把mssql server 的数据保存数据到mysql数据库
 }
}


else
{
 echo 'mssql server 没有数据';
}
/*
ok总算了完成了,其实方法很简单就是同时连接二个数据库,然后把mssql  的数据读取出来保存到数据,再一条条保存到mysql数据库了。
本站原创文章注明来源www.111cn.net/phper/php.html
*/

[!--infotagslink--]

相关文章

  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输...2014-05-31
  • mysql数据库中的information_schema和mysql可以删除吗?

    新装的mysql里面有两个数据库:information_schema 和 mysql 。他们是干么用的?可以删除么?当然是不可以删除的。 1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存...2014-05-31
  • PHP利用XML备份MySQL数据库实例

    本文章来给大家介绍一个PHP利用XML备份MySQL数据库实例,这种方法个人认为只适用小数据量,并且安全性要求不高的用户了。 以下是在Linux下通过Apache+PHP对Mysql数据...2016-11-25
  • godaddy空间怎么创建mysql数据库 godaddy数据库创建方法

    godaddy空间算是一个在国内最受欢迎的国外空间了,小编为一朋友买了一个godaddy空间了,但绑定好域名与ftp之后发现数据库不知道如何创建了,下面经一朋友指点得到了解决办...2016-10-10
  • PHP实现MySQL数据库备份的源码

    对于拟虚空间我们肯定没有操作服务器的权限此时要备份数据库我们可以集成在网站后台来操作,下面一起来看一篇关于PHP实现MySQL数据库备份的源码教程,具体的如下所示。...2016-11-25
  • PHP连接MySQL数据库并向数据库增加记录

    首先需要通过PHP来连接MySQL数据库: #连接数据库 下面是最简单的PHP连接MySQL数据库的代码: 代码如下 复制代码 <?php $link=mysql_connect(...2016-11-25
  • php中实现mysql数据库备份与linux自动定时备份代码

    文章介绍了二种数据库备案的代码,一种是我们php写的常用的数据库备份类,另一种是为linux朋友提供的一个自动定时备份mysql数据库的代码,有需要的同学可以参考一下。...2016-11-25
  • php 列出MySQL数据库中所有表二种方法

    php教程 列出MySQL数据库教程中所有表二种方法 PHP代码如下: function list_tables($database) { $rs = mysql教程_list_tables($database); $tables = a...2016-11-25
  • PHP中对数据库操作的封装

    在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序。这是一件枯燥、费时而且容易出错的功作。其实我们可以...2016-11-25
  • PHP数据库操作Helper类完整实例

    这篇文章主要介绍了PHP数据库操作Helper类,详细分析了php操作mysql的连接、增删改查及关闭连接等步骤,并给出了完整的mysql操作类Helper供大家参考,需要的朋友可以参考下...2016-05-13
  • php 导出.sql文件/mysql数据库备份程序

    <?php $database='';//数据库名 $options=array( 'hostname' => '',//ip地址 'charset' => 'utf8',//编码 'filename' => $database.'.sql',//文件名...2016-11-25
  • 更改Mysql数据库存储位置的具体步骤

    一.首先把mysql的服务先停掉。 二.更改MySQL配置文件My.ini中的数据库存储主路径...2013-09-26
  • php导入excel文件入mysql数据库例子

    php导入excel文件入mysql数据库我们是需一借助一个phpexcel类文件了,有了这个类文件我们就可以快速简单的导入excel到mysql数据库中,下面来给大家整理一个例子,希望能对...2016-11-25
  • 用PHP实现XML备份Mysql数据库

    以下是在Linux下通过Apache PHP对Mysql数据库的备份的文件代码: 文件一、Listtable.php (文件列出数据库中的所有表格,供选择备份) <html> <head> <title> 使用XM...2016-11-25
  • php连接mysql数据库并查询记录所有记录

    下面是一款简单的php操作数据库的程序,我们是先讲php连接mysql数据库,然后再执行sql查询语句再把我们要的记录显示出来,最后关闭与mysql数据库的连接。 $host = 'lo...2016-11-25
  • PHP4 与 MySQL 数据库操作函数详解(1)

    说PHP就不能不提MySQL,而要讲MySQL,那么PHP也是必然要被提起。PHP的迅速崛起,离不开MySQL,而MySQL的广泛应用,也与PHP休戚相关。 下面详细分析PHP4中与MySQL相关操作的函数...2016-11-25
  • php怎么打开数据库 Php连接及读取和写入mysql数据库的常用代码

    小编推荐的这篇文章介绍了Php连接及读取和写入mysql数据库的常用代码,非常实用,有兴趣的同学可以参考一下。 既然现在你看到了这篇文章,说明你肯定知道PHP和MySQL是...2017-07-06