php – Mysqli多行插入,简单的多插入查询
如何使用mysqli插入此查询?…
通常在mysql中这个查询是直接的,并且会插入3行,如何在mysqli中执行此操作而不使用预准备语句或者可能使用预准备语句但不会太复杂?我只是想知道是否有办法执行这样的查询而不用在PHP中做额外的时髦的东西. 本质上,我有一些提取的数据,每个插入大约有10行(除了有多行之外还需要多个插入),这就是我需要的.我只希望用查询来执行此操作,因为我通常使用mysql完成它,而不是每行添加多个插入. 最佳答案 mysqli类提供了许多不同的方法来完成插入,每个方法都有自己的好处.当然,其中一个应该符合您的需求.以下示例假设您未指定的“提取数据”存储在数组数组中:$bigArray [0 … datasetsize] [0 … 2]. mysqli数据库假定为$db. 方法1 – 旧学校 您可以像以前一样直接进行操作,只需构建查询字符串并使用它查询数据库即可.如您所指定,插入一次捆绑10个.下面的代码显示了一个这样的bundle,并且可以简单地扩展到整个数据集(bigArray).应该使用mysqli :: escape_string对数据进行转义(此处未完成). 在所有示例中,假设要插入的数据是整数.
方法2 – 尽可能简单 如果要使用预准备语句和参数绑定,则第一项工作可能如下所示.虽然不是最佳,但声明只准备一次.但是,每个插入的变量都是绑定的,这很浪费(但很简单).由于插入没有捆绑,因此示例循环超过10.
方法3 – 优化 准备好的语句和多个插入组合使得性能几乎与方法1的原始插入查询相同.实际结果将根据您的设置而有所不同,但是对我的系统进行快速测试,同时使用本地和远程数据库显示性能有几个百分比使用优化方法更快地点,如果需要转义方法1中的数据,则增加几点. 以下使用call_user_func_array,但如果您知道每次要捆绑多少插入并直接构建调用bind_param,则可以避免这种情况.这将进一步提高性能. 为清楚起见,这个例子包括外环并假定要插入总共10k行(即bigArray [0..9999] [0..2]). (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Mac OS X 10.8.3上编辑my.cnf后无法重新启动MySQL
- python – 插入mysql数据库时间戳
- mysql – 如何使用mongify将两个表合并为一个表
- mysql – 如何设置SQL以查找从上周日到本周日的记录(1周)
- sql – 具有父ID的多层数据库,多个表或列?
- php – 根据另一个值更新最小值 – MySql
- php – mysql_fetch_array返回重复数据
- mysql – 如何在使用较少内存的单列中存储多个值?
- php – Laravel 5.5使用生产数据库整合迁移
- php – CodeIgniter:所有$this- db- query()方法调用的SQL