1

我最近开始用 PHP 创建一个网站。我的大部分代码都在工作,但是我发现了一个我无法纠正的问题。

我有一个页面,其中有很多对数据库的调用。在我的页面顶部,我正在连接并使用 SELECT 来获取有关相关产品的一些信息。

在页面底部,我再次连接以获得对相关产品的评论。

我的代码很长,所以我很难在这里展示,但这段代码的基础如下:

PHP CODE
  SELECT's
  UPDATE's

HTML
  TABLE's
  IMAGE's
  ect...

PHP
  SELECT's

当我第一次加载页面时,我的代码成功运行了我的所有代码,但是当我单击按钮更新表格(在代码的顶部)时,更新被处理,但是页面底部的注释部分带回以下错误:

“没有选择数据库。”

页面顶部和底部的选择都连接到同一个数据库和同一个表。在我单击更新按钮之前,带回错误的评论部分也可以正常工作。

我的代码说发生错误的代码是:

$commResult = mysql_query("SELECT u.id, u.USERNAME, c.COMMENT, c.DATE_ADDED, c.ACTIVE FROM USERS u, COMMENTS c WHERE c.box_id = $boxId ORDER BY c.DATE_ADDED DESC") or die (mysql_error());;

while ($row = mysql_fetch_array($commResult))
{
     //Do processing here.
}

我的数据库连接代码。这是在一个单独的文件中,我使用 require_once(config.php); 在我的代码需要连接到数据库的每个页面的顶部调用它。

$username = "user";
$password = "password";
$hostname = "localhost"; 

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL");

//select a database to work with
$selected = mysql_select_db("databasename",$dbhandle) 
or die("Could not select databasename");
4

2 回答 2

3

我相信您可能会在脚本顶部打开一个 MySQL 连接,关闭它并重新打开它,而不会忘记选择数据库。

如果您使用的是旧的 mysql_ 函数(您不应该再将其用于新代码,请查看MySQLiPDO),那么您可能已经忘记了这行代码:

mysql_select_db("databaseName");

或者,如果您使用的是“原始查询”,您可能会错过这一行:

mysql_query("USE databaseName");

尽管在同一个脚本上可能不值得关闭数据库连接,但在整个脚本中保持打开状态可能是一个更好的主意。

于 2013-02-04T10:09:08.080 回答
1

你打电话mysql_select_db("Your Database Name")还是mysql_query("Your Database Name", "Query")

是的,你最好不要使用mysql,而是使用mysqli。

于 2013-02-04T10:10:45.497 回答