今天学习了在PHP中访问数据库,主要有两种方法:
//方式一:已经过时 //1.造一个连接(建立通道) $db = mysql_connect("localhost","root",""); //2.选择要操作那个数据库 mysql_select_db("mydb",$db); //3.写sql语句 $sql="select * from Info"; //4.执行sql语句,返回结果集 $result = mysql_query($sql); //5.从结果集中取数据(取一行数据) $row = mysql_fetch_row($result); //都取出来用while循环 while($row = mysql_fetch_row($result)) { }
//方式二:面向对象的方式 //1.造一个连接对象 $db = new MySQLi("localhost","root","密码","mydb"); //2.判断连接是否出错 //判断方法一: if(mysqli_connect_error()) { exit(); } //判断方法二: !mysqli_connect_error() or die("连接失败!"); //3.写SQL语句 $sql = "select * from Info";//若SQL语句为增删改,则不用取其中的数据,直接查看$result的值即可,执行成功返回true,失败返回false //4.执行SQL语句,执行成功返回结果集对象;执行失败,返回false $result = $db->query($sql); //5.从结果集中读取数据 //读取方式一: if($result) { var_dump($result->fetch_row()); //返回一行数据的数组(索引数组) while($row = $result->fetch_row()) //返回所有数据 { var_dump($row); } } //读取方式二: if($result) { var_dump($result->fetch_assoc());//返回一行数据的数组(关联数组) } //读取方式三: if($result) { var_dump($result->fetch_all());//返回所有数据的二维数组 } //读取方式四: if($result) { var_dump($result->fetch_object());//返回一行数据(对象) }
例子1:把Nation表显示在一个下拉列表里
//1.造链接对象 $db = new MySQLi("localhost","root","","mydb"); //2.判断是否出错 !mysqli_connect_error() or die("连接失败!"); //3.写SQL语句 $sql="select * from Nation"; //4.执行SQL语句 $result = $db->query($sql); //5.取数据 if($result) { $attr = $result->fetch_all(); echo "<select>"; foreach($attr as $v) { echo "<option value='{$v[0]}'>{$v[1]}</option>"; } echo "</select>"; }
例子2:把Info表查出来,用表格的形式显示出来
$db = new MySQLi("localhost","root","","mydb"); !mysqli_connect_error() or die ("连接失败!"); $sql="select * from Info,Nation where Info.Nation=Nation.Code"; $result = $db->query($sql); if($result) { $attr = $result->fetch_all(); //var_dump($attr); echo "<table border='1' cellpadding='0' cellspacing='0' align='center' width='100%'>"; 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[6]}</td><td>{$v[4]}</td></tr>"; } echo "</table>"; }