即使在成功连接到数据库之后,PHP也找不到表

时间:2012-09-22 13:52:05

标签: php mysql database

以下代码重新创建了我无法解决的问题。我似乎无法弄清楚问题所在 - 在代码中? MySQL设置?或者别的地方?任何正确方向的指针都将受到赞赏。

<html>
<head></head>
<body>
<?php 
$db_name = "UserDB";
$open = mysql_connect("localhost", "root", "");
if($open)
    echo "1. Successfully connected to MySQL";
echo "</br>";
$db = mysql_select_db($db_name, $open);
if($db)
    echo "2. Successfully selected {$db_name} database";
echo "</br>";
$sql = "SHOW TABLES FROM `{$db_name}`";
$result = mysql_query($sql);
$print = mysql_num_rows($result);
if($result)
    echo "3. {$print} tables found in {$db_name}";
?> 
</body>
</html>

Here's my output:
1. Successfully connected to MySQL
2. Successfully selected UserDB database
3. 0 tables found in UserDB

问题在于输出的第3行。它说“0”表,这是不正确的。我在所选的DB中创建了“3”InnoDB表。如果我在phpmyadmin中复制/粘贴并运行相同的SHOW TABLES查询,它运行完美。

知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

尝试使用包装函数mysql_list_tables。由于一些奇怪的权限定义,我发现不可能一次使用SHOW TABLES,尽管我可以使用mysql_list_tables。