php数据库编程:mysql扩展库操作数据库。

来源:互联网 发布:最好的淘宝优惠券app 编辑:程序博客网 时间:2024/05/16 12:03

         mysql扩展库是一堆函数.是PHP设计者提供给程序员用于完成对mysql数据库的各种操作(CRUD).

      使用php的mysql扩展库完成对mysql操作的案例

 

 

1.      编写php程序完成对用户表的显示
代码
<?php
       //mysql扩展库操作mysql数据库步骤如下
       //1. 获取连接
      
       $conn=mysql_connect("127.0.0.1","root","root");
       if(!$conn){
              die("连接失败".mysql_error());
       }
      
       //2. 选择数据库
       mysql_select_db("test");
       //3. 设置操作编码(建议有)!!!
       mysql_query(“set names utf8”); //保证我们的php程序是按照utf8码操作.
       //4. 发送指令sql (ddl 数据定义语句 , dml(数据操作语言 update insert ,delete) ,dql

(select ), dtl 数据事务语句 rollback commit... )
       $sql="select * from user1";
       //函数
       //$res 表示结果集,你可以简单的理解就是 一张表.
       $res=mysql_query($sql,$conn);
       //var_dump($res); //mysql result 资源类型
      
       //5. 接收返回的结果,并处理.(显示)
       // mysql_fecth_row 会依次取出$res结果集的下一行数据,赋值给$row
       // $row就是一个数组, 样式array(5) { [0]=> string(1) "1" [1]=> string(2) "zs" [2]=>

string(32) "e10adc3949ba59abbe56e057f20f883e" [3]=> string(11) "zs@sohu.com" [4]=> string

(2) "30" }
              //mysql_fetch_assoc mysql_fetch_array
              while($row=mysql_fetch_row($res)){
              //第一种取法是 同 $row[$i]
              //echo "<br/> $row[0]--$row[1]--$row[2]";
              //echo "<br/>";
              //var_dump($row);
              //第二种取法
              foreach($row as $key => $val){
                     echo "--$val";
              }
              echo "<br/>";
       }


//6. 释放资源,关闭连接(必须)
       mysql_free_result($res);
       //这句话可以没有,建议有.
//     mysql_close($conn);
?>
细节 :
1.      使用完 $res 结果集后,一定要及时的释放资源.
2.      mysql_close() 如果没有的话,系统也会自动的关闭
3.      从$res获取行数据的时候,处理 mysql_fetch_row($res),还有三个方法.
分别是
mysql_fetch_row($res)  ,返回一个索引的数组  (推荐.)
mysql_fetch_assoc($res)  ,返回一个关联数组
mysql_fetch_array($res)  ,返回索引数组和关联数组 (两套)
mysql_fetch_object($res) ,把一行数据,当做一个对象返回.
演示通过mysql扩展库,进行dml操作
代码:
<?php
       //演示对user1表进行增,删除,修改的操作
       $conn=mysql_connect("localhost","root","root");
       if(!$conn){
              die("出错了".mysql_error());
       }
       mysql_select_db("test",$conn) or die(mysql_error());
       mysql_query("set names utf8");
       //$sql="insert into user1 (name,password,email,age) values('小明',md5

('123'),'xiaoming@sohu.com',34)";
       //$sql="delete from user1 where id=5";
       $sql="update user1 set age=100 where id=6";
       //如果是dml操作,则返回bool
       $res=mysql_query($sql,$conn);
       if(!$res){
              die("操作失败".mysql_error());
             
       }
       //看看有几条数据
       if(mysql_affected_rows($conn)>0){
              echo "操作成功";
       }else{
              echo "没有影响到行数";
       }
       mysql_close($conn);
?>
从上面的两个文件看出,代码的复用性和可维护性不高,PHP编程中,通常是将对数据库的操作,封装成

一个工具类  SqlTool
<?php
      
       class SqlTool {
             
              //属性
              private $conn;
              private $host="localhost";
              private $user="root";
              private $password="root";
              private $db="test";
              function SqlTool(){
                    
                     $this->conn=mysql_connect($this->host,$this->user,$this->password);
                     if(!$this->conn){
                            die("连接数据库失败".mysql_error());
                     }
                     mysql_select_db($this->db,$this->conn);
                     mysql_query("set names utf8");
              }
              //方法..
              // 完成select dql
              public  function execute_dql($sql){
             
                     $res=mysql_query($sql,$this->conn) or die(mysql_error());
                    
                     return $res;
                    
              }
              //完成 update,delete ,insert dml
              public  function execute_dml($sql){
             
                     $b=mysql_query($sql,$this->conn);
                     //echo "添加的id=".mysql_insert_id($this->conn);
                     if(!$b){
                            return 0;//失败
                     }else{
                            if(mysql_affected_rows($this->conn)>0){
                                   return 1;//表示成功
                            }else{
                                   return 2;//表示没有行数影响.
                            }
                     }
              }
       }
?>
请编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页
//请编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页
       function show_tab_info($table_name){
      
              $conn=mysql_connect("localhost","root","root");
              if(!$conn){
                     die("连接失败".mysql_error());
              }
              echo "hello";
              mysql_select_db("test",$conn);
              mysql_query("set names utf8");
              //$sql="select * from $table_name";
              $sql="desc $table_name";
              $res=mysql_query($sql,$conn);
              //我要知道总有多少行,和多少列
              $rows=mysql_affected_rows($conn);
              $colums=mysql_num_fields($res);
              echo "$rows=$colums";
              echo "<table border=1><tr>";
              //表头
              for($i=0;$i<$colums;$i++){
                     $field_name=mysql_field_name($res,$i);
                     echo "<th>$field_name</th>";
              }
              echo "</tr>";
              while($row=mysql_fetch_row($res)){
                     echo "<tr>";
                     for($i=0;$i<$colums;$i++){
                            echo "<td>$row[$i]</td>";
                     }
                     echo "</tr>";
              }
              echo "</table>";
       /*    while($field_info=mysql_fetch_field($res)){
                     echo  "<br/>".$field_info->name;
              }*/
              //var_dump($field_info);
             
       }
       show_tab_info("user1");

 

0 0
原创粉丝点击