Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制串行mySQL插入(或者以更好的方式重建表)_Javascript_Php_Mysql_Arrays_Ajax - Fatal编程技术网

Javascript 强制串行mySQL插入(或者以更好的方式重建表)

Javascript 强制串行mySQL插入(或者以更好的方式重建表),javascript,php,mysql,arrays,ajax,Javascript,Php,Mysql,Arrays,Ajax,我是mySQL事务新手,我正在使用一些继承的代码,但问题是与基本功能相关的,而不是与特定代码相关的 我有一个js数组,我想插入到mySQL表中。这个 表大小永远不会超过200个条目,通常小于100个 目前,我正在js数组中循环并发送 AJAX请求将每个数组元素发送到一个现有的PHP文件 在它们到达时对其进行处理,并对每个对象执行sql INSERT调用 元素。在js AJAX调用中,async设置为“false” 一切都正常工作–没有插入失败,也没有数据丢失 所以这不是一个代码失败的问题——但

我是mySQL事务新手,我正在使用一些继承的代码,但问题是与基本功能相关的,而不是与特定代码相关的

  • 我有一个js数组,我想插入到mySQL表中。这个 表大小永远不会超过200个条目,通常小于100个
  • 目前,我正在js数组中循环并发送 AJAX请求将每个数组元素发送到一个现有的PHP文件 在它们到达时对其进行处理,并对每个对象执行sql INSERT调用 元素。在js AJAX调用中,async设置为“false”
  • 一切都正常工作–没有插入失败,也没有数据丢失 所以这不是一个代码失败的问题——但是当我稍后得到表格时 从数据库加载到数组中,按updated(added)排序,条目的顺序是错误的,这是一个问题
因此,我向mySQL专家提出的问题是:是否有一个简单的握手功能我没有看到,它将确保mySQL插入按顺序处理

如果答案是否定的,我将需要为每个请求添加一个序列号,并在表中为其添加一列。此外,如果我要对继承的代码进行更改,我愿意听取关于如何寻找更有效的解决方案的建议


谢谢。

您可以一次插入所有阵列:

使用VALUES语法的INSERT语句可以插入多行。到 要执行此操作,请包含多个逗号分隔的列值列表,并使用 用括号括起并用逗号分隔的列表。例如:


阅读更多信息。

您可以一次插入所有阵列:

使用VALUES语法的INSERT语句可以插入多行。到 要执行此操作,请包含多个逗号分隔的列值列表,并使用 用括号括起并用逗号分隔的列表。例如:


阅读更多。

正如保罗·斯皮格尔(Paul Spiegel)所说,如果你想要的只是一个可重复的事件序列,那么最好使用自动增量


我假设当你说‘orderbyupdated(added)’时,那是一个DateTime字段或表上的一些类似字段。如果插入速度足够快,则在同一插入日期/时间将有多行(该字段仅以1秒的分辨率显示)MySQL并不能保证在这种情况下,您总是以相同的顺序返回行。

正如Paul Spiegel所说的,如果您只想获得可重复的事件序列,最好使用自动增量


我假设当你说‘orderbyupdated(added)’时,那是一个DateTime字段或表上的一些类似字段。如果插入速度足够快,则在同一插入日期/时间将有多行(该字段仅以1秒的分辨率显示)MySQL也不能保证在这种情况下,您总是以相同的顺序返回行。

解决问题的最简单方法是在表中设置一个自动增量主键列。这样,每次插入都会生成一个新的id(lastID+1),并且它们的顺序正确。为什么每个元素都有一个请求?您可以在一个请求中发送完整的数组。解决此问题的最简单方法是在表中设置自动递增主键列。这样,每次插入都会生成一个新的id(lastID+1),并且它们的顺序正确。为什么每个元素都有一个请求?你可以在一个请求中发送完整的数组。我没有这么说。虽然我会的,如果我没有的话是的,这就是问题所在。更新的时间字段上的分辨率不足。适用于单个更新(但仍然是错误的设计),但不适用于批量输入。我把它改为使用自动增量字段,一切都很好。下一步是按照Kosh Very的建议发展,以获得更好的性能和更干净的设计。我没有这么说。虽然我会的,如果我没有的话是的,这就是问题所在。更新的时间字段上的分辨率不足。适用于单个更新(但仍然是错误的设计),但不适用于批量输入。我把它改为使用自动增量字段,一切都很好。下一步是按照Kosh Very的建议进行改进,以获得更好的性能和更干净的设计。是的,这就是我能够做到的地方。单行处理的性能并不令人印象深刻。谢谢不仅是表演。你也可以保持参赛作品的原始顺序。是的,这是正确的方法。毫无疑问。是的,这是我可以拿到的地方。单行处理的性能并不令人印象深刻。谢谢不仅是表演。你也可以保持参赛作品的原始顺序。是的,这是正确的方法。毫无疑问。
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);