Php 如果在循环中使用MySQLi prepared语句,何时调用bind_param?
我正在尝试学习如何将准备好的语句与MySQLi一起使用来插入数据 尽管准备好的语句能够高效地重复执行类似的语句而备受赞誉,但我似乎找不到使用MySQLi在循环中执行多个语句的例子。我对以下几点尤其感到困惑:Php 如果在循环中使用MySQLi prepared语句,何时调用bind_param?,php,mysql,loops,mysqli,Php,Mysql,Loops,Mysqli,我正在尝试学习如何将准备好的语句与MySQLi一起使用来插入数据 尽管准备好的语句能够高效地重复执行类似的语句而备受赞誉,但我似乎找不到使用MySQLi在循环中执行多个语句的例子。我对以下几点尤其感到困惑: 是在我的循环之前还是在我的循环内部调用bind_param 调用bind_param 关于预处理语句的大多数教程都使用PDO。使用PDO,可以将一组参数值传递给execute,无需调用bindParam。MySQLi并非如此 PHP手动输入的示例显示了以下操作顺序: 为变量赋值 准备报表
- 是在我的循环之前还是在我的循环内部调用
bind_param
- 调用
bind_param
execute
,无需调用bindParam
。MySQLi并非如此
PHP手动输入的示例显示了以下操作顺序:
bind_param
会生成一个通知。我最终发现我可以传递未定义的变量,因为它们是通过引用传递的
问题:一种操作顺序是否优于另一种?还是仅仅取决于你在做什么?其中一个有问题吗
注意:代码已经使用了MySQLi,我不想切换到PDO(现在切换不在本项目的范围内)。因为参数是通过引用传递的,所以可以在调用
bind_param
之前或之后将值分配给变量。任何一种方法都会奏效
如果变量是按值传递的,那么每次更改它们的值时都需要绑定它们。但是,由于它们是通过引用传递的,所以只需要绑定它们一次
在单次执行的情况下,操作顺序实际上并不重要,可能取决于值的来源在循环的情况下,您一定要在循环之前调用
bind_param
。您在循环什么?您可以调用bind_param
,然后在循环中执行。我想我还没有完全理解这个问题。你肯定应该在bind\u param
之前设置变量。这将使调试变得更容易。我的困惑源于“按值传递”的思维定势。我一直在想,我应该在更改值后重新绑定它们。