【问题标题】:Avoid Error When Selecting From a Table Which Does Not Exist从不存在的表中选择时避免错误
【发布时间】:2017-11-16 21:19:39
【问题描述】:

从不存在的表中选择时,如何避免错误(或用有意义的注释替换错误)?

我在网页上有两个框。用户在第一个中指定了一个表名,我根据该表名运行一个查询,并使用该查询的结果来填充第二个 [下拉] 框(使用 javascript)。

在用户指定一个不存在的表之前,一切正常。查询失败,并且 [下拉] 框填充了“丑陋”错误。我希望它填充“表不存在”。

由于函数 [php] 代码用于多种用途,因此无法对其进行修改,我只能在其中运行“简单”查询。我不能使用存储过程。

我尝试了很多方法来创建这种效果,但都没有成功。为了说明,我正在寻找具有以下逻辑的东西:-

SELECT IF 

(SELECT COUNT(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_NAME = 'table_xxxxx') = 0 

THEN 'Table Not Found'

ELSE

(SELECT id, name FROM table_xxxxx WHERE condition blah blah)

END

其中 table_xxxxx 由用户指定并替换

谢谢

【问题讨论】:

  • 在 1 个 SQL 语句中执行此操作的问题是,当 MySQL 解析 SQL 时,它将检查是否存在表 - 这是您试图解决的问题。您最好先执行“检查表是否存在于信息架构中”,然后再执行第二个 SQL(如果找到)。用 PHP 轻松完成。
  • @Nigel Ren...好的...谢谢...看来这是唯一的选择...

标签: javascript php mysql if-statement select


【解决方案1】:

也许您可以使用 try ... catch 块来消除“丑陋”错误并显示“好”(或“坏”)错误。

【讨论】:

  • 感谢 Ivan... 根据您和 Nigel Ren... 看起来在 PHP 中处理它是唯一的选择....
猜你喜欢
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 2015-11-28
相关资源
最近更新 更多