【问题标题】:2 SQL Statements: 1 invalid, 1 valid, does the valid one get executed?2条SQL语句:1条无效,1条有效,有效的是否被执行?
【发布时间】:2013-04-27 15:37:55
【问题描述】:

比如说我有这个 MySQL 语句:

select somefield from table where otherfield='some')%$#@%; insert into table.....

即使第一个语句抛出错误,插入语句也会被执行吗?

【问题讨论】:

  • 你可以试试看结果吗?
  • 我暂时无法访问 sql server,我只是好奇。
  • 我也不知道有什么 SQL 模拟器可以模拟 MySQL 的确切行为

标签: mysql sql sql-injection


【解决方案1】:

在 SQL Server 中,有一个称为 XACT_ABORT 的概念,当它设置为 ON 时,会导致服务器在发生错误时中止整个批处理。我的 SQL 内置了这个功能。

查看here

来自MySQL Docs

默认情况下,MySQL 为每个新连接启动会话 启用自动提交模式,因此 MySQL 在每个 SQL 之后执行提交 如果该语句没有返回错误,则该语句。如果一个声明 返回错误,提交或回滚行为取决于 错误。请参阅第 13.6.13 节,“InnoDB 错误处理”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2011-02-18
    • 2020-06-02
    相关资源
    最近更新 更多