【问题标题】:Skip error and proceed execution of Mysqli::multi_query跳过错误并继续执行 Mysqli::multi_query
【发布时间】:2012-01-11 06:49:10
【问题描述】:

我可以跳过错误和/或继续执行 multi_query 还是我必须分开我的大请求并在 query() 中单独执行查询? 我执行诸如 CREATE VIEW、CREATE TABLE、CREATE PROCEDURE 等操作符。例如,我不是很感兴趣,是否创建了 TABLE,或者有一些 FK 约束错误,或者 VIEW 从​​其他不存在的模式中选择等等. 我只想在 STDERR 中显示错误输出并在失败或成功完成语句后执行下一个运算符。

【问题讨论】:

  • 请详细说明一下,什么错误?
  • 错误通常意味着什么;你想跳过什么错误?你的意思是数据库相关的错误?他们允许你继续吗?
  • 我执行CREATE VIEW、CREATE TABLE、CREATE PROCEDURE等操作符,比如我不是很感兴趣,是TABLE创建的,还是FK约束出错,或者VIEW有select来自其他不存在的模式等。我只想在失败或成功完成语句后执行下一个运算符。
  • 是的,我现在错误有其含义,但我只想显示用户错误输出;我可以在语法错误的情况下停止,而不是逻辑表/视图/例程结构错误。
  • 你的问题并不清楚 :)

标签: php mysqli multi-query


【解决方案1】:

我假设您说的是在运行多个查询停止整个执行时查询引发的错误...

例如添加IGNORE

INSERT IGNORE into ...;
UPDATE IGNORE ...;

IGNORE 将防止引发的错误停止多查询进程

【讨论】:

  • 在 DDL 运算符中没有 IGNORE 关键字(或存在,但用于其他目的)。
  • 看,在你原来的问题中可能值得一提 DDL 运算符... ;)
  • @Guy Fawkes 怎么样?请分享修复。我也面临同样的问题。
  • 我的意思是我改变了我的问题 :) 在我的应用程序中,我只给用户 2 个选项:跳过错误查询的调试模式和不跳过的快速模式。
猜你喜欢
  • 1970-01-01
  • 2019-12-05
  • 2022-08-17
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
相关资源
最近更新 更多