MySQLi使用实例深度讲解:MySQLi基于面向过程的编程
以下编程基于PHP环境:mysqli在windows上,对于PHP 5.3或更新版本,mysqli扩展默认开启,对于PHP 5.0 5.1 5.2,mysqli扩展默认并不会开启,因此php.ini中php_mysqli.dll这个DLL 必须开启。MySQLi基于面向过程的编程和面向对象的编程是相对的,其中使用到的方法都是可以类比的。连接数据库。
1、设置文件字符编码及连接数据库
//设置文件字符编码 header("Content-type:text/html;charset=utf-8"); //连接数据库 $link=mysqli_connect('localhost', 'root', '', 'test','port') or die ('Connect Error:'.mysqli_connect_error());
2、设置数据库字符编码
mysqli_set_charset($link,'UTF8');
3、插入记录
$query = "INSERT INTO staff(id,name,job) VALUES('','naruto','保安队长')"; $res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
4、查询一条记录
//函数名及说明 //mysqli_fetch_assoc($result) 查询到的一条数据以关联数组形式返回 //mysqli_fetch_row($result) 查询到的一条数据以索引数组形式返回 //mysqli_fetch_array($result) 查询到的一条数据以索引数组和关联数组的混合形式返回 //mysqli_fetch_object($result) 查询到的一条数据以对象属性的形式返回 //mysqli_fetch_array($result) 查询到的一条数据以索引数组和关联数组的混合形式返回 //mysqli_fetch_array($result,MYSQLI_BOTH) 查询到的一条数据以索引数组和关联数组的混合形式返回 //mysqli_fetch_array($result,MYSQLI_ASSOC) 查询到的一条数据以关联数组的混合形式返回 //mysqli_fetch_array($result,MYSQLI_ROW) 查询到的一条数据以索引数组的混合形式返回 $query = "SELECT * FROM staff WHERE id = 2"; $result = mysqli_query($link, $query); $row = mysqli_fetch_assoc($result); var_dump($row); //输出查询结果
5、查询多条记录(一次取出多条记录)
//函数名及说明 //mysqli_fetch_all($result) 查询到的所有数据以索引数组和关联数组的混合形式返回 //mysqli_fetch_all($result,MYSQLI_BOTH) 查询到的所有数据以索引数组和关联数组的混合形式返回 //mysqli_fetch_all($result,MYSQLI_ASSOC) 查询到的所有数据以关联数组的混合形式返回 //mysqli_fetch_all($result,MYSQLI_ROW) 查询到的所有数据以索引数组的混合形式返回 $query = "SELECT * FROM staff"; $result = mysqli_query($link, $query); $rows = mysqli_fetch_all($result,MYSQLI_ASSOC); echo "共".count($rows)."条记录:"; var_dump($rows);
6、每次取出一条记录
$query = "SELECT * FROM staff"; $result = mysqli_query($link, $query); while($row = mysqli_fetch_assoc($result)){ $rows[] = $row; }; echo "共".count($rows)."条记录:"; var_dump($rows);
7、更新记录
更新操作和插入操作类似,区别是执行的sql语句不同。
$query = "UPDATE staff SET name = 'kakax' WHERE id = 3"; $res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
8、删除记录
删除操作和插入操作以及更新操作类似,区别是执行的sql语句不通。
$query = "DELETE FROM staff WHERE id = 13"; $res = mysqli_query($link,$query);//插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".mysqli_insert_id($link); echo "<hr/>"; echo "AFFECTED ROWS:".mysqli_affected_rows($link); }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo mysqli_errno($link).":".mysqli_error($link); }
9、关闭数据库连接
mysqli_close($link);
如果不适用mysqli_close()语句关闭数据库的连接,则非持久连接会在脚本执行完毕后自动关闭。mysqli_close() 不会关闭由 mysqli_pconnect() 建立的持久连接。
本文为「本站原创」,未经我们许可,严谨任何人或单位以任何形式转载或刊载本文章,我们保留依法追究侵权的权力!
微信联系我们
使用微信扫一扫
昵称:亿百天技术
公司:星空体育·(StarSky Sports)官方网站
电话:027-88773336
手机:15342213852
邮箱:serviceebaitian.cn
我来说两句