//方式一: 用函数的方式访问 (已过时,了解即可) 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>"; }