1. sql 语句执行原理


2. mysqli 预处理

<?php
header('Content-Type:text/html;charset=utf8');//预编译演示//需求,使用预编译的方式,向数据库添加3个用户//1.创建 mysqli 对象$mysqli = new MySQLi('localhost','root','123456','test');//2.创建预编译对象$sql = "insert into user1 (name,password,email,age) values(?,?,?,?)";//? 相当于占位符,用数据顶替?
$mysqli_stmt = $mysqli->prepare($sql) or die($mysqli->error);//3.绑定参数
$name = '小红';
$password='xiaohong';
$email = 'aa@sina.com';
$age = '200';//4.参数绑定->给?赋值,这里类型和顺序都要一一对应
$mysqli_stmt->bind_param('sssi',$name,$password,$email,$age);//5.执行
$b = $mysqli_stmt->execute();
if(!$b){die("操作失败" . $mysqli_stmt->error);
}else{echo "操作成功";
}//释放资源
$mysqli->close();

批量增加:

<?php
header('Content-Type:text/html;charset=utf8');//预编译演示//需求,使用预编译的方式,向数据库添加3个用户//1.创建 mysqli 对象$mysqli = new MySQLi('localhost','root','123456','test');//2.创建预编译对象$sql = "insert into user1 (name,password,email,age) values(?,?,?,?)";//? 相当于占位符,用数据顶替?
$mysqli_stmt = $mysqli->prepare($sql) or die($mysqli->error);//3.绑定参数
$name = '小红';
$password='xiaohong';
$email = 'aa@sina.com';
$age = '200';//4.参数绑定->给?赋值,这里类型和顺序都要一一对应
$mysqli_stmt->bind_param('sssi',$name,$password,$email,$age);//5.执行
$b = $mysqli_stmt->execute();//6. 继续添加,这里可以用循环
$name = "老妖";
$password="laoyao";
$email="laoyao@qq.com";
$age='100';
$mysqli_stmt->bind_param('sssi',$name,$password,$email,$age);
$b = $mysqli_stmt->execute();$name = "存储";
$password="cuenchu";
$email="cuenchu@qq.com";
$age='10';
$mysqli_stmt->bind_param('sssi',$name,$password,$email,$age);
$b = $mysqli_stmt->execute();if(!$b){die("操作失败" . $mysqli_stmt->error);
}else{echo "操作成功";
}//释放资源
$mysqli->close();

3.使用预处理进行查询

<?php
header('Content-Type:text/html;charset=utf8');//预编译演示//需求,使用预编译的方式,查询所有id>5的用户的id,name,email,age
// id 为变化的$mysqli = new MySQLi('localhost','root','123456','test');if($mysqli->connect_error){die($mysqli->connect_error);
}//创建一个预定义对象
$sql = "select id,name,email from user1 where id>?";
$mysqli_stmt = $mysqli->prepare($sql);
$id=5;
//绑定参数,即给?赋值
$mysqli_stmt->bind_param("i",$id);//绑定结果集
$mysqli_stmt->bind_result($id,$name,$email);//可以不跟字段一样,引用传递//执行
$mysqli_stmt->execute();//取出绑定的值
while($mysqli_stmt->fetch()){echo "<br/>--$id--$name--$email";
}//关闭资源
//释放结果
$mysqli_stmt->free_result();
//关闭预编译的语句
$mysqli_stmt->close();
//关闭连接
$mysqli->close();



再次执行新的 sql 查询:

<?php
header('Content-Type:text/html;charset=utf8');//预编译演示//需求,使用预编译的方式,查询所有id>5的用户的id,name,email,age
// id 为变化的$mysqli = new MySQLi('localhost','root','123456','test');if($mysqli->connect_error){die($mysqli->connect_error);
}//创建一个预定义对象
$sql = "select id,name,email from user1 where id>?";
$mysqli_stmt = $mysqli->prepare($sql);
$id=5;
//绑定参数,即给?赋值
$mysqli_stmt->bind_param("i",$id);//绑定结果集
$mysqli_stmt->bind_result($id,$name,$email);//可以不跟字段一样,引用传递//执行
$mysqli_stmt->execute();//取出绑定的值
while($mysqli_stmt->fetch()){echo "<br/>--$id--$name--$email";
}//还想执行另外一个 sql 指令
echo "<br/>*****绑定新的id号******";
$id=10;
//绑定参数,即给?赋值
$mysqli_stmt->bind_param("i",$id);//绑定结果集,这时候无需再绑
//$mysqli_stmt->bind_result($id,$name,$email);//可以不跟字段一样,引用传递//执行
$mysqli_stmt->execute();//取出绑定的值
while($mysqli_stmt->fetch()){echo "<br/>--$id--$name--$email";
}//关闭资源
//释放结果
$mysqli_stmt->free_result();
//关闭预编译的语句
$mysqli_stmt->close();
//关闭连接
$mysqli->close();


预编译可以自动防止 sql 注入




4. 其他函数的使用

<?php
header('Content-Type:text/html;charset=utf8');function showTable($table_name)
{$mysqli = new MySQLi('localhost','root','123456','test');if($mysqli->connect_error){die($mysqli->connect_error);}//$sql = "select * from $table_name";$sql = "desc user1";$res = $mysqli->query($sql);//如何获取返回总行数和列数echo "共有 行" . $res->num_rows . "--列" . $res->field_count;echo "<table border='1'><tr/>";//如何取出表头,从$res取出while($field = $res->fetch_field()){echo "<th>{$field->name}</th>"; //用 {} 解析变量}echo "</tr>";//循环取出数据while($row = $res->fetch_row()){echo "<tr>";foreach($row as $k=>$v ){echo "<td>$v</td>";}echo "</tr>";}echo "</table>";//关闭资源$res->free();$mysqli->close();
}showTable("user1");



5. PDO 好处

57. mysqli 扩展库(4)相关推荐

  1. mysqli扩展是mysql扩展的增强版_PHP学习笔记【22】--PHP数据库编程 mysql扩展库 和mysqli扩展库...

    <?php         // php数据库编程     //php链接有 mysql 和mysqli    //    $conn  = mysql_connect("localh ...

  2. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第39讲:PHP数据库编程MySQLi扩展库

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第39讲:PHP数据库编程MySQLi扩展库 mysqli扩展允许我们访问MySQL 数据库,并对MySql数据库进行curd操作.mysqli扩展可以进行数 ...

  3. PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)

    1.和mysql扩展库的区别: (1   安全性.稳定性更高 (2  提供了面向对象和面向过程两种风格 2.php.ini  中的  extension=php_mysqli.dll 解除封印 3.面 ...

  4. php面向对象封装mysql_PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)...

    1.和mysql扩展库的区别: (1   安全性.稳定性更高 (2  提供了面向对象和面向过程两种风格 2.php.ini  中的  extension=php_mysqli.dll 解除封印 3.面 ...

  5. Duang~MySQLi 扩展库来袭

    PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相对进阶的功能,另外本身也增加了 ...

  6. linux php添加mysql扩展模块_linux下为php添加扩展库的方法

    本节内容: linux下添加php扩展库 这里以php curl 扩展库编译为例. 本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译, ...

  7. php 扩展库curl下载,PHP添加CURL扩展库的二种方法

    说明: 本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,对现在运行的php没有任何影响. 有两种方法可以实现这一操作,下面分别介绍. ...

  8. php5.3 gd库,php5.3动态编译gd库 zlib扩展 mcrypt扩展 mysqli扩展

    编译gd cd /usr/local/src/php-5.3.5/ext/gd 一定要在这个目录下执行 /usr/local/php/bin/phpize 接着在当前目录下执行: ./configur ...

  9. php mysql 持久化_PHP: mysqli 扩展和持久化连接 - Manual

    mysqli 扩展和持久化连接 从 PHP 5.3 mysqli 扩展开始支持持久化连接. 持久化连接已经在 PDO MYSQL 和 ext/mysql 中提供支持. 持久化连接的目的在于重用客户端到 ...

  10. php操作mysql数据库的扩展有哪些_PHP mysql 扩展库 操作mysql数据库步骤

    1.和mysql扩展库的区别: (1   安全性.稳定性更高 (2  提供了面向对象和面向过程两种风格 2.php.ini  中的  extension=php_mysqli.dll 解除封印 3.面 ...

最新文章

  1. JavaWeb学习笔记——DOM4J
  2. 推荐一个 Java 实体映射工具 MapStruct
  3. ChemDraw 15.1 Pro插入阿尔法可以这样做
  4. 【NOIP模拟赛】藏宝图 最小生成树
  5. boost::compose_property_map相关的测试程序
  6. defer func(参数){}
  7. 统计字符串每个字符出现的次数
  8. php将图片导入,php中图片文件的导入,上传与下载
  9. Centos7 操作系统 mysql5.7 配置远程登陆操作
  10. 拓端tecdat|R语言进行数值模拟:模拟泊松回归模型的数据
  11. AVPlayerViewController支持横屏设置
  12. arcgispython空间插值_[转载]ARCGIS中几种空间插值简单比较
  13. MarkDown 下载-安装
  14. Thunderbird 邮件签名三个实现方式
  15. 两年数据对比柱形图_办公小技巧:让Excel图表对比更轻松
  16. 易语言流程控制程序暂停开始继续
  17. 当局讳莫如深 青龙县避震成功经验获联合国嘉奖
  18. 解决 el-checkbox-group 值为对象的时候 复选框回显问题
  19. 大数据_数据中台建设的成熟度评估模型
  20. python pycharm 书籍_一份超级完整实用的 PyCharm 图解教程,8K 字赶紧收藏起来

热门文章

  1. 巧妙使用JQuery Clone 添加多行数据,并更新到数据库的实现代码
  2. python time
  3. R语言在大气污染数据分析中的应用-时间序列分析(一)
  4. 米莱迪机器人加物理攻击_游戏中的那些事:米莱迪物理伤害,这个皮肤没见过,蔡文姬一直出错装...
  5. 第十五节20181209
  6. JS 输入框智能提示
  7. 20155336虎光元 Exp1PC平台逆向破解及Bof基础实践
  8. saltstack学习笔记
  9. 基于MRG_MyISAM引擎的Mysql分表
  10. leetcode @python 123. Best Time to Buy and Sell Stock III