mysql_select_db之后,MySql查询未在正确的数据库上运行

时间:2016-06-23 14:41:23

标签: php mysql database

首先,我知道这个系统不应该再使用mysql_函数了,但确实如此。

系统正在连接两个数据库。在运行查询之前,它选择使用mysql_select_db()运行查询的正确数据库。正确的数据库是' database2'。与数据库本身的连接有效,mysql_select_db函数返回true / 1。

代码在本地工作,但在服务器上不起作用......

以下是失败查询的示例...

global $DBtwo;

mysql_select_db('database2', $DBtwo);

$sql = "INSERT INTO table
         (Column1, Column2, Column3)
     VALUES
         ('Value1', 'Value2', 'Value3')";

$result = mysql_query($sql, $DBtwo);

die(mysql_error());

此脚本返回以下输出...

Table 'database1.table' doesn't exist

该错误表明查询正在database1上执行,而不是在database2上执行。但是,在运行查询之前,已成功选择了database2。

如上所述,此错误仅发生在服务器上。在本地运行查询工作并使用正确的数据库。

非常欢迎任何建议或指示。欢呼声。

1 个答案:

答案 0 :(得分:1)

Marc B的评论解决了我的问题,所以归功于他。

mysql_error函数返回误导信息,因为它没有传递资源。

mysql_select_db实际上正在运行。它给人的印象是不能通过不将正确的资源传递给mysql_error的组合工作。最重要的是,mysql_insert_id()由于同样的原因无法工作,导致整个函数返回false。

我现在感到愚蠢,但不那么恼火。非常感谢!