zoukankan      html  css  js  c++  java
  • PHP -- 数据库访问

    一、过时方法(PHP5以前的版本用的):用函数链接数据库,相当于面向过程的方式

    //设置页面编码格式

     header("content-type:text/html;charset=utf-8");

    1)生成链接    

    $db_connect = $mysql_connect("localhost","root","517")   // localhost:服务器的地址; root:数据库的用户名;  517:数据库密码

    2)选择操作的数据库

    mysql_select_db("mydb",$db_connect);      // db: 代表数据库,是datebase的简写 ;  $db_connect:表示用哪一个链接数据库

    3)写sql语句

    $sql = "select * from Info ";

    4)执行sql语句

    $result = mysql_query($sql);

    5)处理查询结果

    $row = mysql_fetch_row($result);

    备注:如果输出内容出现乱码,可以在开始处加上 header("content-type:text/html;charset=utf-8");

    二、面向对象的方式

    1.生成链接对象,需要四个参数

    $db = new mysqli("localhost","root","517","mydb");  

    //mysqli 是对mysql的扩展 // localhost:服务器的地址; root:数据库的用户名;  517:数据库密码; mydb:要链接的数据库

    2.判断是否连接成功

    !mysqli_connect_error() or die("链接失败");  //die相当于echo"链接失败";  exit;  //exit表示退出整个程序

    3.写sql语句

    $sql = "select * from Info ";

    4.执行sql语句

    $result = $db->query($sql);  //可以输出一下$result看下它的类型,var_dump($result);输出的是一个Object(对象).

    5.操作结果集数据

    1)

    //$row = $result->fetch_row();   [ $result->fetch_row(); 每执行一次都会取出不同的一条数据 //fetch_row  表示取出一条数据  ]

    //fetch_row();返回的是索引数组

    while($row = $result->fetch_row())

    {

       print_r($row);

      echo"<br / >";

    }

    2)或者

    $attr = $resullt->fetch_all();  //返回$result结果集里的所有数据,返回的是一个二维数组.

    3)或者

    $result->fetch_assoc();  //返回一条数据,返回的是关联数组

    》》练习的代码(通过链接数据库查出数据,做成表格)

    <!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>
    <?php 
        //造链接对象
        $db =new MySQLi("localhost","root","517","mydb");
        //判断是否出错
        !mysqli_connect_error() or die("连接失败");
        //写sql语句
        $sql = "select * from  Info";
        //执行sql语句
        $result = $db->query($sql);
        //处理查询数据并显示
        echo "<table width='100%' border='1' cellspacing='0' cellpadding='0'>";
        
        echo"<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>";
        while($row = $result->fetch_row())
        {
            //处理性别(也可以用函数的方法处理)
            $sex = $row[2]?"男":"女";
            //处理民族
            $name = ShowNation($db,$row[3]);
            echo"<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$sex}</td><td>{$name}</td><td>{$row[4]}</td></tr>";
        }
        echo"</table>";
        
        //做函数处理民族,函数的功能是传入一个代号返回一个名称
        function ShowNation($db,$code)
        {
            //写sql语句
            $sql = "select Name from Nation where Code='{$code}'";
            //执行sql语句
            $result =$db->query($sql);
            $jieguo = $result->fetch_row();
            return $jieguo[0];
        }
     
    ?>
    
    </body>
    </html>

    》》查询数据库,用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.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <select>
    <?php
    
        //造链接对象
        $db =new MySQLi("localhost","root","517","mydb");
        //判断是否出错
        !mysqli_connect_error() or die("连接失败");
        //写sql语句
        $sql = "select * from  Nation";
        //执行sql语句
        $result = $db->query($sql);
        //处理数据并显示
        $attr = $result->fetch_all();  //返回的二维数据
        
        //遍历二维数组显示出来
        for($i=0;$i<count($attr);$i++)
        {
            
            list($code,$name) = $attr[$i];
            echo"<option value='{$code}'>{$name}</option>";
        }
    
    ?>
    </select>
    </body>
    </html>

    备注:每个数据库都有一个用户名,SqlServer里面的超级管理员叫做SA(Super Administrator的简写),指拥有数据库管理最高权限的用户;mysql的超级管理员是root。

    执行的sql语句,如果是增删改语句,执行之后返回的结果是true或者false.

    快捷键:选中需要移动的代码,按Tab键可以向右移动,shift+Tab:可以向左移动

  • 相关阅读:
    补发《超级迷宫》站立会议九
    补发《超级迷宫》站立会议八
    补发《超级迷宫》站立会议七
    补发《超级迷宫》站立会议六
    一周开发项目
    所学的内容
    开发项目和所用时间 感想
    自我介绍
    大容量数据转移操作命令——BULK INSERT(类似于BCP)
    字符编码与文件处理
  • 原文地址:https://www.cnblogs.com/supermeimei/p/5327180.html
Copyright © 2011-2022 走看看