我使用PHPMyAdmin给数据库添加了一个新表;当试图从PHP页面访问它时,我得到了可怕的MySQL错误"表不存在"。
数据库连接数据是OK的,它们在同一页面的上面几行中用于访问同一数据库中的另一个表。如果我做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();
}
在Unix上,表名区分大小写。在Windows上,它们不是。很有趣,不是吗?有点像它们各自的文件系统。你觉得这是巧合吗?
这可能取决于表类型;MyISAM在你的情况。
字段名不区分大小写。
对于数据库和表名,它取决于底层操作系统。标识符区分大小写
答案很简单:一些打字错误或其他愚蠢的错误,像这样:你连接错误的服务器,编辑错误的文件或类似的东西。仔细检查每件事。
没有特别的错误导致
答案是:表名或至少一个字段名是保留字。
要解决这个问题,您可以将字段和表名用重音(')括起来,例如:
SELECT `value` FROM `pivot`;