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