边记边学PHP-(十六)PHP使用MySQL扩展库操作数据库
PHP提供了很多扩展库,这里说的是使用MySQL扩展库,但是这种扩展库在不久的将来就会被摒弃,因为如果使用MySQL扩展库编写的代码在运行的时候会有warning的提示。我本来想直接写另一种,但是感觉这是基础。MySQL扩展库,一说到库,自然而然就想到是一堆函数,很多函数组成一个库,使用扩展库也就是使用里面的函数。MySQL扩展库是完全面向过程的,显然不符合面向对象的特性,被摒弃也是可以理解的。废话不多说,直接上重点。
一、PHP使用MySQL扩展库操作数据库的示意图
1、连接MySQL服务器
2、选择数据库
3、执行SQL语句
4、关闭结果集
5、断开与服务器的连接
二、细说五步
1、连接MySQL服务器
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; if($conn = mysql_connect($host,$username,$password)){ echo "连接MySQL服务器成功"; }else{ echo "连接失败"; }
2、选择数据库
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $database_name = 'test'; $conn = mysql_connect($host,$username,$password); if(mysql_select_db($database_name,$conn)){ echo "数据库连接成功"; }else{ echo "连接失败"; }
3、执行SQL语句
<span style="font-size:14px;"><?php $host = 'localhost'; $username = 'root'; $password = 'root'; $database_name = 'test'; $conn = mysql_connect($host,$username,$password); mysql_select_db($database_name,$conn); $sql = "select * from tb_student;"; $query = mysql_query($sql,$conn); while($res = mysql_fetch_assoc($query)){ echo $res['id'].'--'.$res['name'].'--'.$res['email'].'--'.$res['address'].'--'.$res['age'].'<br>'; }</span>
4、关闭结果集
5、断开与数据库连接
三、这里给出综合案例
<?php //mysql扩展库操作数据库步骤如下 //1.获取连接 $conn = mysql_connect("localhost","root","root"); if(!$conn){ die("连接失败".mysql_error); } //2.选择数据库 mysql_select_db("mr_mysql"); //3.设置操作编码(建议有) mysql_query("set names utf8"); //4.发送指令sql (ddl【数据定义语句】 ,dml【 数据操作语句,如update,insert,delete】,dql【 select】 ,dtl【数据事务语句 rollback commit】) $sql = "select * from mr_user;"; $res = mysql_query($sql,$conn);//返回的数据‘指针’不是指到了第一行,而是指到第一行的前一行,也就是第0行。 //var_dump($res); //5.接收返回的结果,并处理 while($row = mysql_fetch_row($res)){ //mysql_fetch_row()是返回结果集的下一行并赋值给$row //$row 是一个数组 //第一种取法:$row[i] echo "<br>"; //echo "$row[0]--$row[1]--$row[2]--$row[3]--$row[4]"; //var_dump($row); //第二种取法 foreach($row as $key=>$value){ echo "$value--"; } } //6.释放资源 mysql_free_result($res); mysql_close($conn); //这句可以不写,建议写
四、细节问题
2.mysql_close()如果没有的话,系统也会自动关闭
3.如果mysql_close放在了while前面,那么不会影响结果,因为执行完mysql_query语句之后,程序已经把数据库读到内存,再次使用时是从内存读取。但是如果mysql_free_result放在前面,那么就会出错。
4.$row是个数组
5.$res如果执行的是dql语句返回的是个资源类型,但是如果执行的是dml语句就会返回bool值
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。