不在msqli中选择一些表

时间:2017-01-04 11:24:25

标签: php mysql mysqli

我在使用php与数据库进行交互时遇到问题,几乎我想要显示数据库中的所有表,除了一个,因为它是一个系统表,我尝试使用NOT运算符但似乎没有工作,你有什么想法吗?我在代码下面发帖:

{{1}}

1 个答案:

答案 0 :(得分:1)

首先,SQL需要在语法上正确。

其次,结果行将有一个名为Tables_in_$db_name的列,因此使用$res->fetch_array( MYSQLI_NUM)检索结果会更简单,因为每个数据库的名称都会更改,这样您就不必关心什么你正在查询的数据库

所以像这样的东西应该可以工作

$db_name = 'test';
$sql = "SHOW TABLES FROM $db_name WHERE Tables_in_$db_name NOT LIKE 'sondaggio attivo';";

$res = $db->query($sql);

while ($row = $res->fetch_array( MYSQLI_NUM)) {
    echo $row[0] . '<br>';
}

由于您只是尝试从结果中删除一个特定的表名,因此也可以使用

$db_name = 'test';
$sql = "SHOW TABLES FROM $db_name WHERE Tables_in_$db_name != 'sondaggio attivo';";

$res = $db->query($sql);

while ($row = $res->fetch_array( MYSQLI_NUM)) {
    echo $row[0] . '<br>';
}