边记边学PHP-(十七)PHP使用MySQLi扩展库操作数据库1
上一篇写了使用MySQL扩展库操作数据库,但是MySQL扩展库是完全面向过程的库,与现在逐渐走上舞台的面向对象思想有点差别。那么MySQLi扩展库就很好的解决了这个问题。
一、MySQLi扩展库是什么
二、代码说明一切
1、面向对象编程
<?php //1.创建mysqli对象,第一个参数为服务器名,第二个为用户名,第三个是密码,第四个是要连接的数据库,可以看到这里直接连接到了数据库,不用自己重新选择 $mysqli = new MySQLi("localhost","root","root","test"); //验证是否ok if($mysqli->connect_error){//connect_error是MySQLi类里面的一个属性,记录了连接数据库失败的信息,如果成功则为null。 die("连接失败".$mysqli->connect_error); } //如果是面向对象的话,应该马上想到所有的方法都要去通过对象去使用,查找这个对象里面的方法 //2.操作数据库(发送sql语句指令) $sql = "select * from tb_student"; $res = $mysqli->query($sql); //失败时返回 FALSE ,通过 query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回 TRUE 。 //$res 是一个结果集,这里是mysqli result,可以通过var_dump()函数来看类型 //var_dump($res); //3.处理结果 //fetch_row对应以前的mysql_fetch_row() while($row = $res->fetch_row()){ foreach($row as $key=>$val){ echo "$val--"; } echo "<br>"; } //4.关闭资源 //释放内存 //使用的是mysqli result里面的方法 $res->free(); //关闭连接,使用的是mysqli里面的方法 $mysqli->close(); ?>通过上面可以看到面向对象的使用中,是从声明一个mysqli对象开始的,所有调用的属性或者方法都是用->来调用。mysqli类提供了大量的封装好的方法,这里可以查手册使用,真的特别方便。
2、面向过程编程
除了面向对象,mysqli也提供了面向过程的方法,并且可以混合使用。<?php //1.得到mysqli连接,因为面向过程,直接得到连接,参数含义与上面面向对象一样 $mysqli = mysqli_connect("localhost","root","root","test"); if(!$mysqli){ die("连接失败".mysqli_connect_error($mysqli)); } //2.向数据库发送sql语句 $sql = "select * from tb_student"; $res = mysqli_query($mysqli,$sql); //var_dump($res); //3.处理得到的结果 //循环取出$res中的数据 while($row = mysqli_fetch_row($res)){ foreach($row as $key=>$val){ echo "$val--"; } echo "<br>"; } //4.关闭资源 mysqli_free_result($res); mysqli_close($mysqli); ?>
如果使用mysqli扩展库,建议使用面向对象。
三、操作细节
1、在mysqli扩展库中也提供了四种结果集
- mysqli_result::fetch_assoc 关联数组
- mysqli_result::fetch_array 关联数组或者索引数组
- mysqli_result::fetch_row 索引数组
- mysqli_result::fetch_object 对象形式
2、mysql语句注意
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。