4

我使用 PHPMyAdmin 向数据库添加了一个新表;当试图从 PHP 页面访问它时,我得到了可怕的 MySQL 错误“表不存在”。
数据库连接数据没问题,上面几行在同一个页面上用来访问同一个数据库中的另一个表。如果我SHOW TABLES在 PHPMyAdmin 中这样做,则会列出新表;如果我从 PHP 页面执行此操作,则新表不会出现在列表中。与数据库中的所有其他表一样,新表的引擎是 MyISAM。我只能通过 PHPMyAdmin 访问数据库服务器。

对不起,我忘记了代码,这里是:

$db = mysql_connect ($db_host, $db_user, $db_password) or 
die("Error message here");
$db_select = mysql_select_db($db_name, $db)or die("Error message here");


$query = ("SELECT * FROM `old_table`");
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) 
{
// do stuff - here it works
}


$query = ("SELECT * FROM  `new_table`");
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) 
{
// do stuff - here it does not work
echo mysql_error();
}
4

3 回答 3

4

在 Unix 上,表名区分大小写。在 Windows 上,它们不是。有趣,不是吗?有点像他们各自的文件系统。你认为这是巧合吗?

这可能取决于表类型;MyISAM 在你的情况下。

无论如何,字段名称都不区分大小写。

对于数据库和表名,它取决于底层操作系统。标识符大小写敏感性

于 2013-01-19T13:59:27.210 回答
2

答案很简单:像这样的一些错字或另一个愚蠢的错误:您连接错误的服务器,编辑错误的文件或类似的东西。仔细检查一切。
没有特别的错误导致这个

于 2013-01-19T14:00:06.103 回答
1

答案是:表名或至少一个字段名是保留字。

为了解决这个问题,您可以用重音符 (`) 将字段和表名括起来,例如:

SELECT `value` FROM `pivot`;
于 2019-05-06T15:30:24.070 回答