我想学习如何使用准备好的语句与库MySQLi插入数据。
尽管准备好的声明称赞他们能够有效地重复执行类似的语句的能力,我似乎无法找到使用MySQLi的循环中执行多个语句的例子。 我对以下特别困惑 :
- 是否要调用
bind_param
我的循环之前或我的内循环 - 是否之前或调用后赋值给我变量
bind_param
预处理语句上大多数教程使用PDO。 与PDO,参数值的数组可以被传递到execute
,从而消除了需要调用bindParam
。 这是不是与库MySQLi的情况。
PHP手册mysqli_prepare
条目,显示以下的操作顺序的例子:
- 给变量赋值
- 准备语句
- 绑定变量
- 执行
- 关
通过上面的情况来看,我认为我会需要调用我的循环中绑定的语句。
然而,PHP手册mysqli_stmt_execute
条目具有一个显示操作的顺序如下一个例子:
- 准备语句
- 绑定变量
- 给变量赋值
- 执行
- 给变量赋值
- 执行
- 关
请注意,一件事这个例子没有展示的是其中的变量首先声明。 我想通过未声明的变量,以bind_param
会生成一个通知。 我终于想通了,我可以通过不确定的变量,因为它们是通过引用传递。
问题 :
正在操作的一个顺序优于其他? 或者它只是取决于你在做什么? 是否有一个或其他任何陷阱?
注:该代码已经使用MySQLi的,我不想要切换到PDO(现在切换是这个项目的范围之内)。