我正在尝试检查表是否存在,如果存在则执行某些操作.我继续收到错误,告诉我该表不存在而不是完成我的支票.这是代码:
$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语句似乎无法确定表是否存在.我还能做什么?
我可以依赖此查询来查明指定数据库中的表是否存在或者是否存在某些限制?
SELECT
`information_schema`.`TABLES`.`TABLE_NAME`
FROM
`information_schema`.`TABLES`
WHERE
`information_schema`.`TABLES`.`TABLE_SCHEMA` = 'my_database_name'
AND `information_schema`.`TABLES`.`TABLE_NAME` IN (
'table_name',
'table_name',
'table_name',
'table_name',
'table_name',
'table_name'
)
Run Code Online (Sandbox Code Playgroud)
PS我不需要创建表,只需要检查它是否存在.
我正在尝试使用 shell 脚本检查表是否为空,我拥有的代码是
#!/bin/bash
if [ "mysql -u user -ppassword -hserver dbname -e 'select count(*) from test_dec;'" != 0 ];
then
echo "table not empty"
else
echo "table empty"
fi
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它总是显示“表不为空”,即使查询的输出为 0。
user@server$ ./table_check.sh
table not empty
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
我正在尝试使用 codeigniter 中的 mysql 检查表是否存在,以及该表中的记录是否可用。这是我尝试过的功能,但是 id 不起作用。
function isRowExist($table, $id)
{
if(mysqli_query("DESCRIBE {$table}")) {
$query = $this->db->query("SELECT * FROM {$table} WHERE id = '{$id}'");
}
return $query->num_rows();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。