【发布时间】: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