PHP访问MySQL数据库函数简介

      PHP访问MySQL数据库函数简介

1. 进行数据库连接
    连接数据库服务器,就是客户端向己运行的数据库服务器发出连接请求,
    成功以后就可以对数据库进行相应操作,由于用户的权限不同,所能进
    行的操作也不一样。PHP提供了一系列MySQL操作的函数,用来连接数据
    库的函数有两个,分别是:mysql_connect()和mysql_pconnect()。
    下面在对常用的几个函数作简单介绍后,用一个例子来说明在PHP脚本中
    自动连接数据库的方法。

  1.1 mysql_connect函数
     函数调用格式如下:
     int mysql_connect([string hostname] [:port][, string usename]
                       [, string password]);
     
     参数列表中的port参数表示数据库服务器的端口号,一般用它的默认端
     口3306就可以了。如果不填任何参数,则默认的hostname为"localhost",
     usname为"root", password为空。当然,用户可以指定自己所要连接的
     主机名、用户名、用户密码,来连接指定的数据库。
     函数执行成功,返回一个int类型的连接号,执行失败,返回false值。
     
     例1.1:
       <?PHP
  //连接数据库服务器
  $connect = mysql_connect("localhost","user","password");
  if($connect)
  {
       echo "连接成功";    //连接成功,显示“连接成功";
  }
  else
  {
       echo "连接失败";    //连接失败,显示"连接失败";
  }
 ?>

      在上例中,若mysql_connect函数执行失败,将显示相应的错误提示,
      而后继续往下执行。如果想屏蔽系统的错误提示并在失败后结束程序
      时,显示自己所需要的错误提示。可以在数据库函数之前加上@符号
      屏蔽系统的错误提示,同时用die函数给出更易理解的错误提示,并自
      动退出程序。
      上例可以改为:

      <?php
         //连接数据库服务器,屏蔽前面的出错信息,显示后面的出错信息。
  $connect = @mysql_connect("localhost","user","passwrod") or
              die(“不能连接到数据库服务器!");
       ?>

      若mysql_connect函数执行失败,将显示"不能连接到数据库服务器!",
      退出程序。

  1.2  mysql_pconnect函数

      函数调用格式如下:
      int mysql_pconnect([string hostname] [:port] [, string username]
                         [, string password] );
      
      此函数与mysql_connect函数功能基本相同,区别在于:
      1. 当数据库操作结束后,由mysql_connect函数建立的连接将自动关闭,
         而mysql_pconnect函数建立的连接将继续存在,是一种稳固持久的连接。
      2. 使用mysql_pconnect函数进行连接时,每次连接前,都会检查是否有
         使用同样的hostname、user和password的连接,如果有,则直接使用
  这个连接号。
      3. 函数mysql_connect建立的连接可以用mysql_close函数关闭,而mysql_pconnect
         函数建立的连接则不能用mysql_close函数来关闭。

  1.3  mysql_close函数
       
       函数的调用格式如下:
       int mysql_close(int link_identifider);
       
       本函数关闭由mysql_connect函数建立的连接,执行成功,返回TRUE,失
       败则返回FALSE。
       例1.2:
       <?php
           //连接数据库服务器,屏蔽前面的出错信息,显示后面的出错信息。
    $connect = @mysql_connect("hostname","user","password") or
                die("不能连接到数据库服务器!");

           //关闭与数据库建立的连接
    $close = @mysql_close($connect) or 
             die("不能关闭与数据库建立的连接!“);
        ?>

 注意:
   mysql_close函数不能关闭由mysql_pconnect函数建立的连接.


2. 进行数据库查询

   发送SQL查询语句前首先需要连接数据库,并选择要操作的数据库,下面介绍
   相应的函数与查询

  2.1 选择数据库
      选择数据库的操作由mysql_select_db函数完成。函数的调用格式如下:

     int mysql_select_db(string databasename,int link_identifier);

     其中的参数link_identifier为连接数据库成功所返回的连接号。databasename
     指定数据库名称,执行成功返回TRUE,失败则返回FALSE。

     例1.3:
     
     <?php
        //连接数据库服务器,屏蔽前面的出错信息,显示后面的出错信息。
  $connect = @mysql_connect("hostname","user","password") or
              die("不能连接到数据库服务器!");
 
 //选择数据库,此处的数据库study为数据库名。
 $select = mysql_select_db('study', $connect);

 //显示选择数据库是否成功的信息
 if($select)
 {
    echo "选择数据库成功!";
 }
 else
 {
    echo "选择数据库失败!";
 }

      ?>

     例1.4:
     
     <?php
        //连接数据库服务器,屏蔽前面的出错信息,显示后面的出错信息。
  $connect = @mysql_connect("hostname","user","password") or
              die("不能连接到数据库服务器!");
 
 //选择数据库,调用die()函数显示出错信息。
 $select = @mysql_select_db('study', $connect) or
           die("不能连接到选择的数据库!");
      ?>


  2.2 查询数据库
      查询数据库的操作由mysql_query()函数完成。函数的调用格式如下:

      int mysql_query(string sqlquery, int link_identifier);

      该函数向服务器发一段标准SQL语句请求数据。如果查询失败,则返回一
      FALSE值,成功则返回查询结果。除非SQL语句为select语句,否则对返回
      值可以根本不用理会。

      例1.5:

      <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //显示操作成功与否的信息.
      if($query)
      {
         echo "查询成功";
      }
      else
      {
         echo "查询失败";
      }

     ?>
     
     如果操作成功,函数mysql_query将返回一个真值,那么就会显示"操作成
     功";如果操作失败,函数mysql_query返回FALSE,那么则会显示“操作失败
     ”。这在程序设计中是非常有用的,因为在mysql_query函数操作失败时,系
     统的解释程序不能及时反应出问题,而是执行了很多步才可以发现问题,这
     在程序调试时是非常麻烦的。
     此函数一定要与mysql_select_db函数配合使用,不能单独使用.
     查询操作还可用mysql_db_query函数完成。函数的调用格式如下:

     int mysql_db_query(string database,string sqlquery, int link_identifier);

     在此函数中必须指定数据库名databse和SQL语句sqlquery,如失败则返回 
     FALSE。若SQL请求语句为select语句,将返回一个结果值,否则对返回值
     可以根本不用理会。

     例 1.6

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_db_query("study",$sql, $connect);

      //显示操作成功与否的信息.
      if($query)
      {
         echo "数据库查询成功";
      }
      else
      {
         echo "数据库查询失败";
      }

     ?>
    
     mysql_db_query函数与mysql_query函数的区别在于前者可以不用使用
     mysql_select_db函数来选择数据库,而在执行SQL语句的同时选择数据
     库。后者则需要与mysql_select_db函数配合使用。

3. 写入记录
   
   向表中写入一条记录,可以使用insert语句。仍使用mysql_query函数或
   mysql_db_query函数完成。

   例1.7:  向数据库中的表添加记录

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立数据库数据插入语句。
      $sql="insert into student values('870013',‘群星’,'男')";

      //写入记录
      $query = mysql_query($sql, $connect);

      //根据记录写入成功与否,输出相应的返回信息.
      if($query)
      {
         echo "写入成功";
      }
      else
      {
         echo "写入失败";
  exit;
      }

     ?>

4. 删除记录
   
   删除在数据库操作,也是最常用的操作。删除记录需要使用delete语句。

   例1.8:  从表中删除记录

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立数据库数据删除语句。
      $sql="delete from student where id='870013'";

      //进行删除查询。
      $query = mysql_query($sql, $connect);

      //根据记录删除成功与否,输出相应的返回信息.
      if($query)
      {
         echo "数据删除成功";
      }
      else
      {
         echo "数据删除失败";
  exit;
      }

     ?>
  
5. 创建数据库
   用PHP创建数据库表是比较简单的,可由mysql_create_db函数完成。函数的
   调用格式如下:

   int mysql_create_db(string database_name, int link_identifier);

   其中datdabasename为用户要创建的数据库名称,link_identifier为连接服
   务器成功后返回的连接号。成功返回TRUE,失败返回FALSE。
    
    例1.9:

      <?php  
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //建立一个数据库dbtest。
      $create=mysql_create_db("dbtest", $connect);

      //根据数据库是否创建成功在页面上显示相应的信息。
      if($create)
      {  
         echo "数据库dbtest创建成功!";
      }
      else
      {
         echo "数据库dbtest创建失败!"; 
      }
      
      ?>

      若数据库不再需要,可用mysql_drop_db函数将其删除。函数的调用格式
      如下:
      int mysql_drop_db(string databasename, int link_identifier);

      该函数删除数据库。databasename为要删除的数据库名字,link_identifier
      为连接数据库服务器成功返回的连接号,删除成功返回true,失败返回false.
    
      例1.10:

      <?php  
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //删除数据库dbtest。
      $drop = mysql_drop_db("dbtest", $connect);

      //根据删除成功与否在页面上返回相应的信息。
      if($create)
      {  
         echo "删除数据库dbtest成功!";
      }
      else
      {
         echo "删除数据库dbtest失败!"; 
      }
      
      ?>

      数据库创建后,用户还可以通过mysql_query函数或mysql_db_query函数
      向其中添加表,只需将提交的查询语句设置为创建表的SQL语句即可,与
      向表中添加记录的操作类似,在些不再赘述!


5. 获取数据库信息
    本节介绍9个常用的数据库信息获取函数。
   
   1. mysql_fetch_field函数

    函数调用格式如下:

     object mysql_fetch_field(int query, [ int field_offset ] );

    该函数将数据库信息返回到一个哈希表,其结构见表5-1。

          表9-1 存放数据库信息的哈希表

              项目           内容
             ---------------------------------------------------
              table          表名
              name           字段名
       max_length     该字段的最大长度
       not_null       字段为not null则返回1,否则返回0
       prinary_key    字段为prinary key则返回1,否则返回0
       unique_key     字段为unique key则返回1,否则返回0
       multiple_key   字段为非unique key则返回1,否则返回0
       numeric        字段为非unique key则返回1,否则返回0
       blob           字段为blob则返回1,否则返回0
       type           字段的类型
       unsigned       字段为unsigned则返回1,否则返回0
       zerofill       字段为zero filled则返回1,否则返回0
             ----------------------------------------------------

     使用此函数可以得到表名、字段名、类型等信息。

     例1.11:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      while($object = mysql_fetch_field($query))
      {
         echo "table name: ".$object->table."<br>";
  echo "field name: ".$object->name."<br>";
  echo "primary key: ".$object->primary_key."<br>";
  echo "nto null: ".$object->not_null."<br>";
  echo "field type: ".$object->type."<br>";
  echo "field max length: ".$object->max_length."<br>";
      }
      
      ?>

      注意:
      哈希表的下标是从0开始的,即第一个字段为哈希表中的0项。
      如果想直接得到哈希表的第三项即第三个字段的信息,可用如下调用格式:
      $object = mysql_fetch_field($query, 2);
      来实现,也可以使用mysql_field_seek函数来达到同样的目的。

   2. mysql_field_seek函数

     函数调用格式如下:
      
      int mysql_field_seek(int $query, int field_offset);

     该函数将游标移到指定的字段。

     例1.12:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //将游标指定到第二个字段上。
      $seek = mysql_field_seek($query, 2);

      //开始读取字段信息,信息是从第二个字段处开始显示的。
      $object = mysql_fetch_field($query);
  
         echo "table name: ".$object->table."<br>";
  echo "field name: ".$object->name."<br>";
  echo "primary key: ".$object->primary_key."<br>";
  echo "nto null: ".$object->not_null."<br>";
  echo "field type: ".$object->type."<br>";
  echo "field max length: ".$object->max_length."<br>";
      
      ?>

   3. mysql_list_dbs函数

     函数调用格式如下:
      
      int mysql_list_dbs(int link_identifier);

     取得数据库服务器中所有可用的数据库名。
     例1.13:  显示MySQL服务器中所有的数据库名。

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");
      $dbs = mysql_list_dbs($connect); //从数据库中取得数据库名信息
      $rows= mysql_num_rows($dbs); //计算数据库服务器中己创建数据库的个数
      echo "database total: ".$rows;  //显示上面的计算结果
      $i = 0;          //将显示数初值设为0
      while($i<$rows)  //逐个读取数据库的名字
      {
        $db_name[$i] = mysql_tablename($dbs, $i); //读取第$i个数据库名
 echo "$db_name[$i]/n";  //将数据库名显示在页面上
 $i++;                    //序号加1
      }

     ?>

   4. mysql_list_tables函数

     函数调用格式如下:
      
      int mysql_list_tables(int databasename);

     该函数返回指定数据库中所有表的名字。

     例1.14:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");
      $tables = mysql_list_tables("mysql"); //取得数据库中数据表的信息
      $rows= mysql_num_rows($tables); //计算数据库中数据表的个数
      echo "table total: ".$rows;  //显示总的数据表的个数
      $i = 0;          //将显示数初值设为0
      while($i<$rows)  //逐个读取数据表的表名
      {
        $table_name[$i] = mysql_tablename($tables, $i); //读取第$i个数据表的表名
 echo "$table_name[$i]/n";  //显示数据表的表名
 $i++;                    //序号加1
      }

     ?>

     注意:
     该函数相当于MySQL中的show tables命令(先要用use mysql命令选中一个数据库)。

   5. mysql_fetch_array函数

     函数调用格式如下:
      
      array mysql_fetch_array(int query);

     执行成功,返回一个数组,该数组保存有下一条记录的值,如执行失败,
     则返回FALSE值。返回的数组既可以用下标来表示,也可以用字段名来表示。

     例 1.15:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //依次读取数据表中的数据信息。
      while($array = mysql_fetch_array($query))
      {
         //显示所读取的信息
  echo $array["name"]."    ".$array["sex"]."<br>";
         //上面的语句也可改为echo $array[1]."  ".$array[2]."<br";
      }

     ?>

   6. mysql_fetch_row函数

     函数调用格式如下:
      
      array mysql_fetch_row(int query);

     本函数与mysql_fetch_array函数功能基本相同。区别在于mysql_fetch_row
     函数返回的数组只能以数组下标来表示。成功返回一个数组,失败返回FALSE值。


     例 1.16:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //依次从数据库中读取数据信息。
      while($row = mysql_fetch_row($query))
      {
         //把查询到的信息输出到页面上
  echo $row[0]."  ".$row[1]."  ".$row[2]."<br>";
      }

     ?>

     注意:
     mysql_fetch_row()函数只能用数组下标来表示,并从0开始。mysql_fetch_row()
     比mysql_fetch_array()执行速度快,并且都是对下一行数据进行读取。

   7. mysql_result函数

     函数调用格式如下:
      
      int mysql_result(int query, int row, string fieldname);

     参数row从0开始,参数fieldname必须是真实的字段名,不能用下标来表示。
     若执行成功,返回由数据库中取出的字段的数值,失败则返回FALSE值。

     例 1.17:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //显示查询到的结果。
      echo mysql_result($query, 0, "id")."   ";
      echo mysql_result($query, 0, "name")."   ";
      echo mysql_result($query, 0, "sex")."<br>";

     ?>

   8. mysql_fetch_object函数

     函数调用格式如下:
      
      object mysql_fetch_object(int query);

     能对指定的字段进行循环读取,执行成功,将以对象object的形式返回数
     值,失败则返回FALSE值。

     例 1.18:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //依次循环读出查询结果,输出到页面上。
      while($object = mysql_fetch_object($query))
      {
  echo $object->id."<br>";
  echo $object->name."<br>";
  echo $object->sex."<br>";
      }

     ?>

     注意:
     mysql_fetch_object函数执行成功后返回的是1个对象object。引用方法
     如下:   
          $object->字段名

   9. mysql_data_seek函数

     函数调用格式如下:
      
      int mysql_data_seek(int query, int row);

     该函数将游标移动到指定的行。若执行成功返回真值,失败则返回FALSE值。
     此函数可以与mysql_fetch_array或mysql_fetch_row配合使用,即在使用
     mysql_data_seek函数之后,就可以用mysql_fetch_array或mysql_fetch_row
     函数来显示指定的行了。

     例 1.19:

     <?php
      //连接数据库服务器
      $connect = mysql_connect("localhost","user","password");

      //选择数据库
      $select = mysql_select_db("study",$connect);

      //建立一个查询语句,显示数据库study中表student的信息。
      $sql="select * from student";

      //查询数据库操作
      $query = mysql_query($sql, $connect);

      //将游标指定到第二个数据上
      $seek = mysql_data_seek($query, 2);

      //读取查询到的数据信息
      $array = mysql_fetch_array($query);

      //将读取到的数据信息显示在页面上
      echo $array["id"]."<br>";
      echo $array["name"]."<br>";
      echo $array["sex"]."<br>";
      
     ?>

 

转自:http://www.programfan.com/blog/article.asp?id=42281

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值