相关疑难解决方法(0)

MySQL检查表是否存在而不抛出异常

什么是检查MySQL中是否存在表(最好是通过PHP中的PDO)而不抛出异常的最佳方法.我不想解析"SHOW TABLES LIKE"的结果等等.必须有某种布尔查询?

php mysql database pdo

122
推荐指数
3
解决办法
10万
查看次数

如何获取MySQL视图列表?

我正在寻找一种列出数据库中所有视图的方法.

最初我在MySQL论坛上找到并尝试了答案:

SELECT table_name
FROM information_schema.views
WHERE information_schema.views.table_schema LIKE 'view%';
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,返回一个空集.(我知道他们在那里!)

这些也失败了:

mysql> use information_schema;
Database changed
mysql> select * from views;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
mysql> select * from tables;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

mysql

120
推荐指数
5
解决办法
14万
查看次数

检查MySQL上是否存在表

我正在尝试检查表是否存在,如果存在则执行某些操作.我继续收到错误,告诉我该表不存在而不是完成我的支票.这是代码:

$tableExists = $db->prepare("SHOW TABLES LIKE $table_array");
$tableExists->execute();
if($tableExists->rowCount() > 0) {
   // do some code
 } else {
   echo "Unable to add because table does not exists";
}
Run Code Online (Sandbox Code Playgroud)

更新:根据以下建议,我现在执行以下操作:

$tableExists = $db->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ?"); 
$tableExists->execute(array($table_array)); 
if(!is_null($tableExist)) { 
    //do something
} else {
    echo "table does not exist;
}
Run Code Online (Sandbox Code Playgroud)

但是,if语句似乎无法确定表是否存在.我还能做什么?

php mysql

7
推荐指数
1
解决办法
8863
查看次数

标签 统计

mysql ×3

php ×2

database ×1

pdo ×1