我想知道是否可以使用Zend测试表是否存在。
我在Zend中还很陌生,我在StackOverflow中看到了对此代码的回答。
sudo npm i -g browserslist caniuse-lite
但是如果表不存在,它会返回一个错误,我不知道如何在Zend中处理SQL错误。
答案 0 :(得分:2)
如果该表可能根本不存在,那么当前查询将在执行后失败。即使表不存在也不会崩溃的一种替代方法是查询信息模式表:
if (( $var -eq 15* )); then
echo "Yes"
fi
以上查询将始终返回包含匹配表计数的单个记录。如果上述查询返回的SELECT
COUNT(CASE WHEN table_schema = 'yourdb' AND table_name = 'testtable'
THEN 1 ELSE 0 END) AS cnt
FROM information_schema.tables;
值为1,则该表存在,如果返回0,则该表不存在。
编辑:
如果数据库和/或表名是动态的(来自您的PHP脚本),则可以使用准备好的语句并动态绑定数据库/表的值。查询变化不大:
cnt
有关更多信息,请参见PHP documentation on prepared statements。