相关mysql视频教程推荐
* 1. 查询操作
* 2. 涉及的3个函数:
* 2-1. mysqli_query($db, $sql):执行SQL语句,返回结果集
* 2-2. mysqli_errno($db):返回最后一次函数执行的错误代码
* 2-3. mysqli_error($db):返回最后一次函数执行的错误信息
* 2-4. mysqli_num_rows($res): 返回结果集中的记录数量
* 2-5. mysqli_fetch_row($res): 以索引数组返回一条记录
* 2-5. mysqli_fetch_assoc($res): 以关联数组返回一条记录
* 2-5. mysqli_fetch_array($res,MYSQLI_NUM): 以索引数组返回一条记录
* 2-5. mysqli_fetch_array($res,MYSQLI_ASSOC): 以关联数组返回一条记录
* 2-5. mysqli_fetch_array($res,MYSQLI_BOTH): 以索引和关系并存数组返回一条记录
* 2-5. mysqli_fetch_object($res): 以对象方式返回一条记录
* mysqli_free_result($result);
* 2-4. mysqli_close($db):关闭当前的数据连接
* 3. 查询步骤:
* 3-1.连接数据库
* 3-2.准备SQL语句
* 3-3.执行查询
* 3-4.检测结果
* 3-5.如果是select,则返回结果集
* 3-5-1.如果是insert/update/delete:则返回受影响的记录数量
* 3-6.关闭数据库连接
//1.连接数据库,require 不是函数,后面不用加括号
1 2 3 4 5 6 7 8 9 10 11 | define ('DB_HOST', 'localhost'); define ('DB_USER', 'root'); define ('DB_PASS', 'root'); define ('DB_NAME', 'php'); define ('DB_CHAR', 'utf8'); $db = @mysqli_connect(DB_HOST, DB_USER, DB_PASS); if (mysqli_connect_errno($db)) { exit('连接失败'.mysqli_connect_error($db)); } mysqli_select_db($db, DB_NAME); mysqli_set_charset($db, DB_CHAR); |
//2.准备SQL语句
1 2 | $sql = "SELECT name,salary FROM staff"; $sql = "SELECT name AS 姓名,salary AS 工资 FROM staff WHERE age>90"; |
//3.执行查询:成功会返回结果集对象,失败返回false
1 2 | $result = mysqli_query($db, $sql); var_dump($result);die(); |
//4.检测结果
//如果结果集存在
1 2 3 4 5 6 7 | if (false != $result) { //这是写只是语义性更强 //如果结果集中存在记录,至少有一条 // if (mysqli_num_rows($result) > 0) { //mysqli_affected_rows($db)也可以完成同样的检测工作,注意参数是连接对象$db,不是结果集对象 if (mysqli_affected_rows($db) > 0) { // echo '共计:'.mysqli_num_rows($result).'条记录<br>'; echo '共计:'.mysqli_affected_rows($db).'条记录~~<br>'; |
//5.处理结果集
//5-1:获取索引部分
1 | while($row = mysqli_fetch_array($result, MYSQLI_NUM)){ |
//获取索引部分的快捷方法
1 | while($row = mysqli_fetch_row($result)){ |
//5-2:获取关联部分
1 | while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ |
//获取关联部分的快捷方法
1 | while($row = mysqli_fetch_assoc($result)){ |
//5-3:索引+关联
1 | while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){ |
//5-4: 获取索引+关联的快捷方法就是不传入第二个参数,也就是默认值
1 | while($row = mysqli_fetch_array($result)){ |
//5-4:以对象的方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | while($row = mysqli_fetch_object($result)){ // var_export($row);//以字符串方式表示查询结查 //如果是对象,可以用指向符来访问 echo $row->name.'--'.$row->salary; echo '<hr>'; //以变量方式表示,表示的内容更加完整丰富 // var_dump($row); } } else { echo '没有符合条件的记录'; } //查询失败的处理方式 } else { //必须要用exit()或die()终止脚本执行,否则后面的语句还会执行并会报错 exit('查询失败'.mysqli_errno($db).':'.mysqli_error($db)); } |
//5.释放结果集(仅针对select)
1 | mysqli_free_result($result); |
//6.关闭数据库连接
1 | mysqli_close($db); |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |