PHP -- 数据库访问
Posted ~梅梅~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:可以向左移动
以上是关于PHP -- 数据库访问的主要内容,如果未能解决你的问题,请参考以下文章