MYSQLI:mysqli预处理语句

应用环境 mysqli预处理功能(大量数据处理时使用)
步骤  
a)mysqli连接数据库 $conn= new mysqli(‘localhost‘,‘root‘,‘123456‘,‘apple‘);
b)设置编码 $conn->set_charset(‘utf8‘);
c)发送query语句
使用$conn->prepare($sql)这个方法表示是预处理,如果涉及到取值,必须指定查询字段

$sql = "select * from product_info where product_id=?";

$stmt = $conn->prepare($sql);

d)提供条件
比如上句用了?作为不确定的值,就需要指定

$stmt->bind_param(‘i‘,$product_id);        用变量绑定?表示的值,i表示整型,d表示浮点型,b代表二进制,s代表其它的所有

$product_id=$_GET[‘product_id‘];           指定变量的值

e)绑定结果格式并执行
$stmt->bind_result($product_id,$product_info,$product_trans,$product_price);   绑定结果格式

$stmt->execute();                发送变量,此时服务器的语句已经完整了

 f)从sql服务器中取回结果

预处理语句会将结果集保存在sql开辟的内存中,php开辟的内存无法直接使用(count是php函数,不是sql函数,无法直接与sql内存交互),默认情况是每次执行fetch()会从sql内存中取出一行,但是不使用store_result()就无法获取行数.当然如果你的结果只有一行,可以无视这一句.请记住:在mysqli预处理中取出数据,只能使用fetch()这是因为mysqli_stmt类并没有其它取值方法

$stmt->store_result();     //如果用变量接收的话,会发现成功了显示1,否则显示0(所以用变量接受的值并不是结果集)

 g)获取结果集行数  $count = $stmt->num_rows();
 h)输出结果
while($field=$result->fetch_field()){    echo $field->name."--";              //输出数据库字段信息}while($stmt->fetch()){    echo "$product_id--$product_info--$product_trans--$product_price";     //输出取出数据信息}

前面说了,既然要取值,当然前面query指定了查询字段,上句的变量用上了

 i)关闭mysqli链接
$conn->close();
   
时间: 2024-10-23 13:31:14

MYSQLI:mysqli预处理语句的相关文章

PHP MySQL 预处理语句

PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预处理:创建 SQL 语句模板并发送到数据库.预留的值使用参数 "?" 标记 .例如:INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?) 数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出 执行:最

MySqli 中预处理类 stmt

非select 语句(没有结果集的) 1.建立连接数据库 $mysqli=new mysqli("localhost","root","","sqldb"); 2.判断 if(mysqli_connect_error()){ echo "连接数据库失败".mysqli_connect_error();  exit; } 3.SQL语句拼装 $sql="insert into shops(name,

使用预处理语句实现数据查询的方法

查询数据库里面有多少条数据 $m=new mysqli('localhost','root','','db'); $m->set_charset('utf8'); $stmt=$m->prepare('select count(*) from stu'); $stmt->execute(); $stmt->bind_result($c); $stmt->fetch(); echo $c; $stmt->free_result(); $stmt->close();

使用预处理语句实现插入删除修改数据

预处理插入语句 $m=new mysqli('localhost','root','','db'); $m->set_charset('utf8'); $stmt=$m->prepare('insert into stu values(null,?,?,?)'); $n='aa'; $g='保密'; $s=10; $stmt->bind_param('ssi',$n,$g,$s); $stmt->execute(); $stmt->close(); $m->close(

mysqli_stmt类:使用预处理语句处理SELECT查询结果

SELECT语句和其他的SQL查询命令不同,它需要处理查询结果.SQL语句的执行也需要使用mysqli_stmt对象中的execute()方法,但与mysqli对象中的query()方法不同,execute()方法的返回值并不是一个mysqli_result对象.mysqli_stmt对象提供了一种更为精巧的办法来处理SELECT语句查询结果:在使用execute()方法执行SQL语句完成查询之后,使用mysqli_stmt对象中的bind_result()方法,把查询结果的各个数据列绑定到一些

PDO预处理语句PDOStatement对象使用总结

PDO预处理语句PDOStatement对象使用总结 PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的.如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象.而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参

删除预处理语句函数的创建及使用

删除预处理语句函数 <?php $host = 'localhost'; $user = 'root'; $pass = ''; $dbname = 'db'; $charset = 'utf8'; $m = new mysqli($host,$user,$pass,$dbname); $m->set_charset($charset); //$tn为表名,$w为条件 function delete($tn,$w='1=1'){ global $m; $stmt = $m->prepar

预处理语句

[1]预处理语句是什么语句? 预处理语句最明显的标志是一些行首以#开始的特殊语句. 例如:#include,#define 等就是预处理语句.在程序的其它编译处理(词法分析.语法分析.代码生成.优化和连接等)之前,先进行这些语句的分析处理. [2]预处理语句使用的目的? 目的在于帮助程序员编写出易读.易改.易移植并便于调试的程序. [3]预处理语句主要有那些? (1)宏定义和宏替换 (2)文件包含 (3)条件编译 (4)行控制 [4]预处理语句的作用范围? 从被定义语句开始直至被解除定义或是到包

前端学PHP之PDO预处理语句

× 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保存时总是报错,于是再开一篇.另一方面,相较于前面的exec()和query()语句来说,预处理语句更加常用 定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,PDO提供了一种名为预处理语句(prepared s