mysql 预处理语句报错_mysqli与MySQL交互的预处理语句

本文详细介绍了MySQL预处理语句的工作原理和PHP中的应用,包括准备SQL语句、参数绑定、执行语句、结果处理等步骤,旨在提高SQL执行效率和安全性。
摘要由CSDN通过智能技术生成

在编写PHP代码执行SQL语句的时候,很多情况下我们都是相似的语句,只是个别的参数不同,针对这种重复执行相似语句的情况,MySQL4.1版本开始提供了一种名为预处理语句的机制,它可以将整个语句只向MySQL服务器发送一次,以后只有参数发生变化,MySQL服务器只需对语句的结构做一次分析就够了。这既减少了需要传输的数据量,还提高语句的处理效率。

1)准备一个用于执行的SQL语句

准备的SQL语句里面使用占位符"?",来代表将要改变的参数

$query='insert into 表(字段1,字段2...) values(?,?...)';

$stmt=mysqli_prepare($link,$query);

2)将变量作为参数绑定到prepared语句上

mysqli_stmt_bind_param($stmt ,'values $types',$var1,$var2...);

参数string $types说明:表示后面多个可选参数变量的数据类型,一一对应.

i:int类型

d:double或者float类型

s:字符串类型

b:二进制数据类型(BLOB、二进制字符串)

例:mysqli_stmt_bind_param($stmt ,'is',$val1,$val2);

表示$query变量中的两个占位符第一个为“i”类型并赋值给$val1,第一个为“s”类型并赋值给$val2

3)执行一个prepared准本好的语句

在执行语句前要先给$val1和$val2赋值

mysqli_stmt_execute ($stmt);

4)将查询出的数据绑定到PHP变量上

mysqli_stmt_bind_result($stmt,$var1,$vae2...);

5)从一个prepared语句中抓取结果到指定变量中

mysqli_stmt_fetch ($stmt);

6)从一个prepared语句返回结果集元数据,配合相关函数,可以用来获得字段的相关信息

mysqli_stmt_result_metadata($stmt);

①mysqli_fetch_field();

②mysqli_fetch_fields();

7)取回一个结果集

mysqli_stmt_store_result($stmt);

取回之后可以使用mysqli_stmt_num_rows($stmt);返回语句结果集中的行数

8)释放给定语句处理存储的结果集所占内存

mysqli_stmt_free_result($stmt);

9)如果在执行SQL语句的时候发生错误,可以使用以下函数处理错误原因

mysqli_stmt_errno ($link);(返回int类型)

mysqli_stmt_error ($link);(返回string类型)

10)关闭一个prepared语句

mysqli_stmt_close($stmt);

最后编辑:2019-04-03作者:qingheluo

5aea90233e4bbc88135a027c2de2596a.png

这个作者貌似有点懒,什么都没有留下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值