Zend MySQL检查表是否存在

时间:2019-07-02 13:40:35

标签: php mysql zend-framework

我想知道是否可以使用Zend测试表是否存在。
我在Zend中还很陌生,我在StackOverflow中看到了对此代码的回答。

sudo npm i -g browserslist caniuse-lite

但是如果表不存在,它会返回一个错误,我不知道如何在Zend中处理SQL错误。

1 个答案:

答案 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