zoukankan      html  css  js  c++  java
  • OOP数据库操作方法

    一、数据库操作

    连接MYSQL数据
    面向对象访问数据库
    e.g.

    
    
    造对象
    $dx=new MySQLi("localhost","root","123","nation");
    
    
    

    判断连接是否成功

    !mysqli_connect_error() or die("连接失败");
    

     SQl操作语句
    mysql_select_db()
    连接上数据库后,PHP默认选择的数据库未必是我们后面操作中需要的数据库,为确保数据库选择正确,一般在数据库连接语句后面还要加上数据库选择语句。
    e.g.


    $sql="select * from nation";
    

    执行SQL语句
    $result=$dx->query($sql)
    该函数将SQL语句发送到当前活动的数据库并执行语句,返回结果。
    e.g.

    $result = $dx->query($sql

    从结果集中读取数据

    以二维数组的方式返回表中所有元素,可以加参数MYSQLI_ASSOC , MYSQLI_NUM , or MYSQLI_BOTH;不加参数默认返回索引数组

    $attr=$result->fetch_all()
    


    4. 关闭数据库
    mysql_close()
    该函数用于关闭不需要继续活跃的数据库,但该方法不是必须的,一般PHP会自动关闭不继续活跃的数据库。
    e.g.
    mysql_close($db);
    5. 释放SQL结果
    mysql_free_result()
    该函数用于释放mysql_query()执行结果占用的内存,该函数很少被调用,除非result很大,占用太多内存;一般在PHP脚本执行结束之后很自动释放占用的内存。
    二、SQL执行结果操作
    1. 返回执行结果中的一行
    mysql_fetch_row()
    返回执行结果的当前行的数值数组,执行这个函数后,结果指向下一行。
    e.g.
    $row = mysql_fetch_row($result);
    处理执行结果一般放在while循环中,遍历每一行
    e.g.
    while($row = mysql_fetch_row($result))
    {……}
    2. mysql_fetch_row()的替代方法
    mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。
    mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
    mysql_fetch_array()返回键值对数组,键为查询的table的列名;
    mysql_fetch_assoc()返回结果时可以先排序(如果为可选参数赋值),相当于mysql_fetch_array()+MYSQL_ASSOC
    3. 执行结果的字段(列)属性
    mysql_fetch_field()
    4. 查询数据库中的表名
    mysql_list_tables()
    e.g.


    $db_name = MYSQL_DB;
    $result = mysql_list_tables($db_name);
    echo “数据库中包含如下表:”;
    while ($row = mysql_fetch_row($result))
    {
    echo $row[0];
    } 
    


    5. 查询数据库的列名(字段名)
    mysql_list_fields()
    e.g.


    $fields = mysql_list_fields($db_name,$table);
    $columns = mysql_num_fields($fields);
    for ($i = 0; $i < $columns; $i++)
    echo mysql_field_name($fields, $i); 
    


    三、其他函数
    1. mysql_num_rows()
    返回执行结果的行数。
    e.g.
    $num = mysql_num_rows($result);
    2. mysql_num_fields()
    返回执行结果的列数(字段数)。
    e.g. $num = mysql_num_fields($result);
    3.mysql_set_charset()
    设置执行结果的编码,防止在网页中显示中文时乱码。
    e.g.

    $query = “select * from $table_name”;
    mysql_query(‘set names utf8′);
    $result = mysql_query($query, $db) or die(mysql_error($db));
    

     练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <table>
    <table>
    <tr>
    <td>code</td>
    <td>名字</td>
    <td>性别</td>
    <td>民族</td>
    <td>生日</td>
    </tr>
    <?php
    //造对象
    $db= new mysqli("localhost","root","","1");
    //判断连接
    !mysqli_connect_error() or die ("连接错误");
    //sql语句
    $sql="select * from info ";
    //执行sql,返回结果对象
    $result=$db->query($sql);
    //纵览数组
    while($arry=$result->fetch_row())
    { //sql语句
      $sql="select Name from nation where code='{$arry[3]}'";
      //执行sql返回结果对象
      $result1=$db->query($sql);
      //取数据
      $arry1=$result1->fetch_row();
      
      $sex=$arry[2]==1?"男":"女";
      echo "<tr>
          <td>{$arry[0]}</td>
          <td>{$arry[1]}</td>
    	  <td>$sex</td>
    	  <td>{$arry1[0]}</td>
    	  <td>{$arry[4]}</td>
            </tr>";
    }
    ?>
    </table>
    </body>
    </html>
    

     

  • 相关阅读:
    supper 关键字
    self 关键字
    Setter/Getter方法
    0013.HBase进阶
    0012.HBase基础
    0011.MapReduce编程案例2
    0010.MapReduce编程案例1
    0009.Mapreduce的高级功能
    0008.MapReduce基础
    0007.HDFS上传与下载的原理
  • 原文地址:https://www.cnblogs.com/zoubizhici/p/5580711.html
Copyright © 2011-2022 走看看