博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysqli
阅读量:6253 次
发布时间:2019-06-22

本文共 6012 字,大约阅读时间需要 20 分钟。

一、验证MySQL扩展是否开启

1.查看php信息

2.检查扩展是否已经加载

3.检查函数是否存在

4.得到当前已经开启的扩展

 二、连接数据库并获取客户端和服务器端的信息

select_db('test');// 方法二:在实例化对象时不传任何值,通过connect()方法连接数据库时传值// $mysqli = new mysqli();// // 参数1:主机名,参数2:用户名,参数3:密码,参数4:数据库名称// $mysqli->connect('127.0.0.1','root','','test');// print_r($mysqli);// 建立连接的同时打开指定数据库// 参数1:主机名,参数2:用户名,参数3:密码,参数4:数据库名称// @:屏蔽系统报错提示$mysqli = @new mysqli('localhost','root','','test');// print_r($mysqli);// 判断如果有错误编号,结束程序// $mysql->connect_errno:得到连接产生的错误编号// $mysql->connect_error:得到连接产生的错误信息if($mysqli->connect_errno){ // connect_error 输出报错信息 die('Connect Error:'.$mysqli->connect_error);}// 打印所有$mysqli可调用的方法print_r($mysqli);echo '

';// 获取客户端信息echo '客户端的信息:'.$mysqli->client_info.'
';echo $mysqli->get_client_info().'
';// 获取客户端版本echo '客户端的版本:'.$mysqli->client_version.'
';echo '

';// 获取服务器端信息echo '服务器端信息:'.$mysqli->server_info.'
';echo $mysqli->get_server_info().'
';echo '

';// 获取服务器端版本echo '服务器端版本:'.$mysqli->server_version.'
';// 设置字符集$mysqli->set_charset('utf8');?>

 

三、小结

connect_errno){ die('Connect Error:'.$mysqli->connect_error);}// 2.设置默认的客户端编码方式utf8$mysqli->set_charset('utf8');// 3.执行SQL查询// 编写SQL语句(创建一个表单名为'mysqli',拥有两个字段->'id'、'username'的数据表)$sql=<<
query($sql);var_dump($res);/*** SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result对象,执行失败返回false* 对于其它SQL语句的执行,执行成功返回true,否则返回false*/// 关闭连接$mysqli->close();?>

四、数据库操作

1.插入数据(insert)

2.更新数据(updata)

3.删除数据(delete)

connect_errno){ die('Connect Error:'.$mysqli->connect_error);}// 设置字符集$mysqli->set_charset('utf8');// 创建user表单(此代码应该写在初始程序中,此处添加防止报错)$sql=<<
query($sql);// 执行SQL查询// 添加记录// 执行单条SQL语句// 编写SQL语句// $sql="INSERT user(username,password) VALUES('king','king');";// 删除user数据表// $sql.="DROP TABLE user;";$sql="INSERT user(username,password) VALUES('queen1','queen1'),('queen2','queen2'),('queen3','queen3'),('queen4','queen4')";// 执行SQL语句$res=$mysqli->query($sql);// 判断是否插入成功if($res){ // 得到上一步插入操作产生的AUTO_INCREMENT的值 echo '恭喜您注册成功,您是网站第'.$mysqli->insert_id.'位用户
'; // 得到上一步操作产生的受影响记录条数 echo '有'.$mysqli->affected_rows.'记录被影响';}else{ // 得到上一步操作产生的错误号和错误信息 echo 'ERROR'.$mysqli->errno.':'.$mysqli->error;}echo '

';// 修改数据// 将表中年龄+10$sql = "UPDATE user SET age=age+10";$res = $mysqli->query($sql);if($res){ echo $mysqli->affected_rows.'条记录被更新';}else{ echo "ERROR".$mysqli->errno.':'.$mysqli->error;}echo '

';// 删除数据// 将表中id<=6的用户删除掉(WHERE 后面是判断条件)$sql = "DELETE FROM user WHERE id<=6";$res = $mysqli->query($sql);if($res){ echo $mysqli->affected_rows.'条记录被删除';}else{ echo "ERROR".$mysqli->errno.':'.$mysqli->error;}/*** affected_rows值为3种:* 1.受影响的记录条数* 2.-1,代表SQL语句有问题* 3.0,代表没有受影响记录的条数*/// 关闭到MySQL的连接$mysqli->close();?>

4.查询数据()

connect_errno){ die('数据库连接失败:'.$mysqli->connect_error);}$mysqli->set_charset('utf8');// 编写SQL语句$sql = "SELECT id,username,age FROM user";// 执行SQL语句,获得结果集对象$mysqli_result = $mysqli->query($sql);// var_dump($mysqli_result);// 判断结果集是否存在及结果集的数据条数if($mysqli_result && $mysqli_result->num_rows>0){ // echo $mysqli_result->num_rows; // $mysqli_result->fetch_all(); // 获取结果集中所有记录,默认返回的是二维的索引数组 // $rows = $mysqli_result->fetch_all(MYSQLI_NUM); // 返回一个索引数组 // $rows = $mysqli_result->fetch_all(MYSQLI_ASSOC); // 返回一个关联数组 // $rows = $mysqli_result->fetch_all(MYSQLI_BOTH); // 同时返回索引数组和关联数组 // 取得结果集中一条记录作为索引数组返回 $row = $mysqli_result->fetch_row(); print_r($row); echo '

'; // 取得结果集中的一条记录作为关联数组返回 $row = $mysqli_result->fetch_assoc(); print_r($row); echo '

'; // 取得结果集中的一条记录同时返回索引数组和关联数组 $row = $mysqli_result->fetch_array(); print_r($row); echo '

'; // 取得结果集中的一条记录,返回关联数组 $row = $mysqli_result->fetch_array(MYSQLI_ASSOC); print_r($row); echo '

'; // 返回结果集对象 $row = $mysqli_result->fetch_object(); print_r($row); echo '

'; // 移动结果集内部指针 $mysqli_result->data_seek(0); $row = $mysqli_result->fetch_assoc(); // 获得结果集返回的关联数组 print_r($row); // 通过while循环,输出所有数据 while($row = $mysqli_result->fetch_assoc()){ // print_r($row); // echo '

'; $rows[] = $row; } print_r($rows); // 释放结果集 // $mysqli_result->close(); $mysqli_result->free();}else{ echo '查询错误或者结果集中没有记录';}// 关闭连接$mysqli->close();?>

 

 

五、针对多条SQL语句的查询

errno){ die('数据库连接失败:'.$mysqli->error);}$mysqli->set_charset('UTF8');$sql = "INSERT user(username,password,age) VALUES('root','root','32');";$sql .= "UPDATE user SET age=5 WHERE id=28;";$sql .= "DELETE FROM user WHERE id=25;";// 针对多条SQL语句的查询$res = $mysqli->multi_query($sql);var_dump($res);?>

 

errno){ die('书记库连接失败:'.$mysqli->error);}// 设置字符集$mysqli->set_charset('UTF8');$sql = "SELECT id,username,age FROM user;";$sql .= "SELECT * FROM mysql.user;";$sql .= "SELECT CURRENT_USER();"; // 当前用户$sql .= "SELECT NOW();"; // 操作时间// use_result()//store_result():获取第一条查询产生的结果集// more_results():检测是否有更多的结果集// next_result():将结果集指针向下移动一位// multi_query() 可同时执行多条查询语句if($mysqli->multi_query($sql)){ // do while 循环 do{ if($mysqli_result = $mysqli->store_result()){ $rows[] = $mysqli_result->fetch_all(MYSQLI_ASSOC); // 输出关联数组 } }while($mysqli->more_results() && $mysqli->next_result());}else{ // 输出报错信息 echo $mysqli->error;}print_r($rows);// 关闭连接$mysqli->close();?>

 

六、预处理语句

errno){ die('数据库连接失败:'.$mysqli->error);}// 设置字符集$mysqli->set_charset('UTF8');// 编写SQL语句$sql = "INSERT user(username,password,age) VALUES(?,?,?)";// 准备预处理语句$mysqli_stmt = $mysqli->prepare($sql);// print_r($mysqli_stmt);$username = 'king';$password = md5('king');$age = 12;// 绑定参数$mysqli_stmt->bind_param('ssi',$username,$password,$age);// 执行预处理语句if($mysqli_stmt->execute()){ echo $mysqli_stmt->insert_id; echo '
';}else{ $mysqli_stmt->error;}$username = 'king1';$password = md5('king1');$age = 22;// 绑定参数$mysqli_stmt->bind_param('ssi',$username,$password,$age);// 执行预处理语句if($mysqli_stmt->execute()){ echo $mysqli_stmt->insert_id; echo '
';}else{ $mysqli_stmt->error;}$username = 'king2';$password = md5('king2');$age = 32;// 绑定参数$mysqli_stmt->bind_param('ssi',$username,$password,$age);// 执行预处理语句if($mysqli_stmt->execute()){ echo $mysqli_stmt->insert_id; echo '
';}else{ $mysqli_stmt->error;}?>

.

转载地址:http://gdysa.baihongyu.com/

你可能感兴趣的文章
答《漫话ID》中的疑问:UniqueID和ClientID的来源
查看>>
【转】Asp.net控件开发学习笔记整理篇 - 服务器控件生命周期
查看>>
Linux下的shell编程(一)BY 四喜三顺
查看>>
javascript一些小技巧
查看>>
I00024 出钱买羽
查看>>
linux下文件的一些文件颜色的含义
查看>>
websotrm注册码
查看>>
迭代器(Iterable)和for..in..的三种协议
查看>>
判断浏览器是否为顶层窗口
查看>>
数据结构化与保存
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
服务器设计笔记(3)-----消息队列
查看>>
poj 1797 Heavy Transportation(最短路径Dijkdtra)
查看>>
基于WinDbg的内存泄漏分析
查看>>
气象预警采集及推送
查看>>
【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
查看>>
python 基础复习 09 之基础函数
查看>>
Extjs 4
查看>>
Java内存模型(JMM)以及 垃圾回收机制 小结
查看>>
开源3D游戏引擎Irrlicht简介
查看>>