数据访问

//方式一: 用函数的方式访问 (已过时,了解即可)

1.造一个连接(建立通道)

$db=mysql_connect("localhost","root","123");//参数为服务器地址,用户名,密码

2.选择要操作哪一个数据库

mysql_select_db("mydb");

3.写SQL语句

$sql="select * from Info";

4.执行SQL语句

$result = mysql_query($sql); //返回结果集

5.从结果集中读取数据

$row =mysql _fetch_row($result); //取第一条数据

var_dump($row);

//取所有数据

while($row=mysql_fetch_row())

{

  var_dump($row);

}

//方式二:面向对象的方式              *****非常重要,必须熟练*****
1.造一个连接对象

$db = new MySQLi("localhost","root","123","mydb");//参数为服务器地址,用户名,密码,数据库名

2.判断是否出错

方法1:

if(mysqli_connect_error())

{

  exit("连接失败!");    //退出程序,并输出"连接失败!"

}    //若出错则直接退出整个程序,所以不用写else

方法2:

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

3.写SQL语句

$sql = "select * from Info";

4.执行SQL语句,查询语句若执行成功则返回结果集对象,若失败则返回false

$result = $db->query($sql);

5.从结果集中读取数据       //读取数据方式不同,取值方式也不同

if($result)      //判断$result是true还是false,若不判断,当$result为false时会报错

{

  var_dump($result->fetch_row());     //返回一行数据的数组(索引数组)

  while($row=$result->fetch_row())    //取所有数据

  {

    var_dump($row);

  }

  var_dump($result->fetch_assoc());  //返回一行数据(关联数组)

  var_dump($result->fetch_all());       //返回所有数据(二维数组)

  var_dump($result->fetch_object()); //返回一行数据(对象)

}

若SQL语句为:

$sql = "select count(*) from Info";

$result = $db->query($sql);      //结果集为一个整型值

if($result)

{

  //用fetch_all()读取:

  $shuju = $result->fetch_all();       //返回只有一个数的二维数组,这个数存储在二维数组的第一行第一列,即$shuju[0][0]  

  echo $shuju[0][0];

  //用fetch_row()读取:

  $shuju = $result->fetch_row();    //返回只有一个数的一维数组

  echo $shuju[0];

}

//若SQL语句为增,删,改,则不用读取数据,只需判断是否执行成功,如果执行成功执行什么操作,如果执行失败,执行什么操作.例如:

$sql = "insert into Info values('p001','','','','')";

$result= $db->query($sql);

var_dump($result);    //若执行成功返回true,若执行失败返回false

练习:

1. 将Nation表以下拉列表的形式显示在网页上

$db=new MySQLi("localhost","root","123","mydb");
!mysqli_connect_error() or die("连接失败!");
$sql="select * from Nation";
$result=$db->query($sql);
if($result)
{
$a=$result->fetch_all();
echo "<select>";
foreach($a as $v)
{
echo "<option value='{$v[0]}'>{$v[1]}</option>";
}
echo "</select>";
} 

2. 将Info表以表格的形式显示在网页上

$db=new MySQLi("localhost","root","123","mydb");
!mysqli_connect_error() or die("连接失败!");
$sql = "select * from Info";
$r = $db->query($sql);
if($r)
{
$attr = $r->fetch_all();
echo "<table width='100%' border='1' cellpadding='0' cellspacing='0'>";
echo "<tr>
<td>代码</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
</tr>";
foreach($attr as $v)
{
echo "<tr>
<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
</tr>";
}
echo "</table>";
}

//将性别与民族显示出来:

性别对应$v[2],民族对应$v[3].

处理性别:$sex=$v[2]?"男":"女";

将表格中$v[2]换为$sex

处理民族名称:

$sqln="select Name from Nation where Code='{$v[3]}'";

$result=$db->query($sqln);

$attrn=$result->fetch_assoc(); //关联数组

将表格中$v[3]换为$attrn['Name']
foreach($attr as $v)
    {
        //处理性别
        $sex=$v[2]?"男":"女";
        //处理民族名称
        $sqln="select Name from Nation where Code='{$v[3]}'";
        $rnation = $db->query($sqln);
        $attrn = $rnation->fetch_assoc();
        echo "<tr>
                <td>{$v[0]}</td>
                <td>{$v[1]}</td>
                <td>{$sex}</td>
                <td>{$attrn['Name']}</td>
                <td>{$v[4]}</td>
             </tr>";
    }

 

posted @ 2016-05-04 14:30  魅影星魂  阅读(170)  评论(0编辑  收藏  举报