gpt4 book ai didi

php - Zend MySQL 检查表是否存在

转载 作者:行者123 更新时间:2023-11-29 05:48:45 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以使用 Zend 测试表是否存在。
我是 Zend 的新手,我在 StackOverflow 中看到回答了这段代码。

SELECT 1 FROM testtable LIMIT 1;

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

最佳答案

如果该表可能根本不存在,那么您当前的查询将在执行时失败。即使表不存在也不会崩溃的一种替代方法是查询信息模式表:

SELECT
COUNT(CASE WHEN table_schema = 'yourdb' AND table_name = 'testtable'
THEN 1 ELSE 0 END) AS cnt
FROM information_schema.tables;

上述查询将始终返回包含匹配表计数的单个记录。如果上述查询返回cnt值为1,则表存在,如果返回0,则表不存在。

编辑:

如果数据库和/或表名是动态的,来自您的 PHP 脚本,那么您可以使用准备好的语句并动态绑定(bind)数据库/表的值。查询没有太大变化:

SELECT
COUNT(CASE WHEN table_schema = ? AND table_name = ? THEN 1 ELSE 0 END) AS cnt
FROM information_schema.tables;

参见 PHP documentation on prepared statements获取更多信息。

关于php - Zend MySQL 检查表是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56853844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com