Mysql表示表不存在。可能有什么不对?

时间:2015-07-10 15:18:16

标签: php mysql

我无法从使用php创建的化学结构数据库中的表中检索记录。每当我使用mysql_query()或mysqli_query()时,结果总是等于false,因为错误(表'Crystal_Structs.BinaryCompoundList'不存在),mysqli_error()告诉我。

我知道该表存在且在我使用SHOW TABLES和CHECK TABLE查询时工作,因为显示了表并且其状态被视为正常。我能够在我的Netbeans IDE数据库服务区和命令行中运行Select,Insert等查询。我不确定发生了什么,但非常感谢任何帮助。谢谢。

代码段:

    /* Connect to local MySQL server */
$localdb = mysqli_connect("server", "user", "pass")
    or die("Unable to connect to Database Server");

/*Connect to Crystal Structures db*/
mysqli_select_db($localdb, "Crystal_Structs")
        or die(mysqli_error($localdb));
session_start();
$Ab=$_POST['compound'];
$spce_grp=$_POST['space_group'];

$query = 'SELECT * FROM BinaryCompoundList '
        . 'WHERE compound="$_SESSION[Ab]" '
        . 'AND space_group="$_SESSION[spce_grp]"';

$result = mysqli_query($localdb, $query);

if($result == false){
    echo 'not a proper query:';
    echo $query;
    die(mysqli_error($localdb)); /*debug*/
}
$check = mysqli_num_rows($result);
if($check != 1){
    die("Multiple Records");
}

SHOW TABLES查询:

+---------------------------+
| Tables_in_Crystal_Structs |
+---------------------------+
| BinaryCompoundList        |
| BinaryCompoundSites       |
+---------------------------+
2 rows in set (0.00 sec)

CHECK TABLE BinaryCompoundList query:

+------------------------------------+-------+----------+----------+
| Table                              | Op    | Msg_type | Msg_text |
+------------------------------------+-------+----------+----------+
| Crystal_Structs.BinaryCompoundList | check | status   | OK       |
+------------------------------------+-------+----------+----------+
1 row in set (0.00 sec)

1 个答案:

答案 0 :(得分:0)

我注意到您通过两个名称调用数据库:代码中的Crystal_Structs和错误消息中的Crystal_Structures。你有没有机会在开发路径上创建多个数据库?

除此之外,必须是拼写错误,你能显示SHOW TABLES的输出吗?