![]() |
1
1
对于您的情况,应该以编程方式构建查询字符串。如果保证它总是三个值,那么可以向SQL添加三个标记,然后通过在数组上循环进行绑定。 |
![]() |
2
5
注意str\u repeat将返回的尾部逗号。或者
那么您的查询可以是:
您可以将参数绑定到一个循环中。 |
![]() |
3
1
这可能有点老了,但我自己也在想。所以我做了一个基准测试。首先,我创建了一个简单的表:
它是一个微不足道的结构,重约100 MB。这个随机数是用php的mt\u rand()函数创建的。 “这是”获取.php":
以及一些基准:
下面是fetch2.php
以下是它的相关基准。
显然,“Fetch2.php”更有效,但是在这个基准测试中。。。在你进入100+元素范围之前,这似乎并不重要。对准备好的语句进行迭代既简单又安全(根本不可能进行SQL注入),而且在~10个元素的范围内似乎不会慢很多。用~10个元素重复测试有时可能会有“获取.php“赢得基准。总的来说,Fetch2.php当然赢了,但它们在这个范围内肯定很接近。 我倾向于说。。。如果少于100个元素,只需利用准备好的语句并重复执行即可。毕竟,准备好的声明就是为了这个目的而设计的。当然,没有什么比数据库的一次往返更有效了,但是prepared statement方法可能具有可接受的性能。当然,在您自己的系统上进行基准测试。很可能,上面的测试太简单了(没有任何连接或子查询。。。数据库和php脚本在同一个系统上……) |
|
faro621 · 在php中使用num\u rows方法时出错 7 年前 |
![]() |
Steven Guerrero · 具有不同参数的准备语句 7 年前 |
![]() |
Amin Hijaz · 为什么查询的if语句返回false? 7 年前 |
![]() |
Matt Hutch · 使用php向mysql数据库传递特殊字符 7 年前 |
|
Codes Conference · 表查询中的变量不工作 7 年前 |
![]() |
Steven Smith · 动态数据透视表mysqli和PHP 7 年前 |