Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Php 在MySQL中预览更新/插入查询的结果而不修改数据库?_Php_Mysql_Transactions_Innodb - Fatal编程技术网

Php 在MySQL中预览更新/插入查询的结果而不修改数据库?

Php 在MySQL中预览更新/插入查询的结果而不修改数据库?,php,mysql,transactions,innodb,Php,Mysql,Transactions,Innodb,我正在编写一个脚本,将CSV文件导入数据库中的现有表中。我决定自己使用PHP和insert/update语句来执行insert/update操作,而不是使用MySQL的LOAD INFIE命令,我有充分的理由这样做 我想做的是模拟插入/更新操作并将结果显示给用户,然后让他们选择确认这是正确的,然后将更改提交到数据库 我正在使用支持事务的InnoDB数据库引擎。不确定这是否有帮助,但考虑了插入/更新、查询数据、向用户显示,然后提交或回滚事务 任何建议都将不胜感激。更简单的方法就是这样 在预览页面上

我正在编写一个脚本,将CSV文件导入数据库中的现有表中。我决定自己使用PHP和insert/update语句来执行insert/update操作,而不是使用MySQL的LOAD INFIE命令,我有充分的理由这样做

我想做的是模拟插入/更新操作并将结果显示给用户,然后让他们选择确认这是正确的,然后将更改提交到数据库

我正在使用支持事务的InnoDB数据库引擎。不确定这是否有帮助,但考虑了插入/更新、查询数据、向用户显示,然后提交或回滚事务


任何建议都将不胜感激。

更简单的方法就是这样

在预览页面上:

  • 缓冲php输出
  • 启动交易
  • 进行插入和更新
  • 选择您的数据
  • 输出它,不管你想要什么
  • 回滚
  • 然后在确认页面上:

  • 缓冲输出
  • 启动交易
  • 进行插入和更新
  • 承诺
  • 输出你想要的

  • 更简单的方法是这样的

    在预览页面上:

  • 缓冲php输出
  • 启动交易
  • 进行插入和更新
  • 选择您的数据
  • 输出它,不管你想要什么
  • 回滚
  • 然后在确认页面上:

  • 缓冲输出
  • 启动交易
  • 进行插入和更新
  • 承诺
  • 输出你想要的

  • 您可以将数据导入到单独的“导入”表中。向用户显示表格中的结果。如果他单击“确定”,则将该数据复制到主表并删除导入表。如果他单击“取消”,只需删除导入表

    导入表名称应按用户选择,以便不同的用户不会覆盖其表


    事务在这里对您没有帮助,因为当PHP导入脚本完成时,事务将回滚。

    您可以将数据导入到单独的“导入”表中。向用户显示表格中的结果。如果他单击“确定”,则将该数据复制到主表并删除导入表。如果他单击“取消”,只需删除导入表

    导入表名称应按用户选择,以便不同的用户不会覆盖其表


    事务在这里对您没有帮助,因为当PHP导入脚本完成时,事务将回滚。

    我可能也会这样做。不要忘记祈祷没有其他人修改中间的数据;)有没有办法把桌子锁上,直到做完。它需要允许选择,但如果我可以锁定对表的插入/更新,那就太好了。不需要Mysql magic。甚至php的信号量也会在脚本完成后释放。所以你必须使用你自己的信号系统。祝你好运我可能也会这样做。不要忘记祈祷没有其他人修改中间的数据;)有没有办法把桌子锁上,直到做完。它需要允许选择,但如果我可以锁定对表的插入/更新,那就太好了。不需要Mysql magic。甚至php的信号量也会在脚本完成后释放。所以你必须使用你自己的信号系统。祝你好运