没有在mysql中选择数据库

时间:2011-11-07 07:08:18

标签: php mysql

处理文件时,我打开和关闭这样的连接:

require("../StoredProcedure/connect.php");//users.user_id 

 //..some query and code

mysql_close();

我为整个文件多次这样做..是否更高效,一次打开连接而在文件末尾关闭它..

我也收到错误消息:

 No database selected

但我确实要求连接文件选择了数据库..为什么我会收到该消息?

这就是文件内部的内容:

<?
    $conn=mysql_connect("localhost","root","") or die(mysql_error);
    mysql_select_db("politicalforum",$conn); 
?>

连接工作..我尝试过其他查询

3 个答案:

答案 0 :(得分:3)

我的建议是转到PDO。那里的结构更适合你的方法(多重连接)。

除此之外(而不是相反),我相信你应该坚持单个连接每个数据库。每次都不需要打开和关闭连接,因为它不会为您节省任何服务器资源或提高脚本的速度。

在PDO中数据库选择已嵌入连接DSN:

$db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD');

我敦促你学习它并远离mysql_*函数,因为它们有许多问题(最突出的是没有准备好的陈述)。

进一步的分数

  • 不要使用PHP短标签(<? ?>)。使用完整的(<?php ?>),旧的不推荐使用,可能会在以后的项目中删除。
  • 正确缩进代码,这就解决了许多看不见的问题(在StackOVerflow上缩进大块代码,粘贴已缩进代码,突出显示它,然后按代码按钮(或CTRL) + K)。)

答案 1 :(得分:0)

如果您在一个程序/实例中与数据库建立多个连接,并且每次调用

require('../StoredProcedure/connect.php');

脚本中数据库连接的最佳策略是在您第一次需要时调用它,并在上次使用时关闭它。基本上在脚本的顶部和底部。

旁注:

include('../StoredProcedure/connect.php');

比要求更快,如果你可以使用单引号。您的脚本执行速度更快,服务器资源压力更小。

答案 2 :(得分:-1)

你不能这样做:

mysql_close();

你应该这样关闭你的连接:

$link_identifier = mysql_connect(...);
mysql_close($link_identifier);

所以在你的情况下它将是

mysql_close($conn);

无论如何,您不需要关闭连接,PHP将在脚本结束时执行相同操作。

你不应该打开&amp;在脚本中多次关闭连接。只需一次(例如在脚本的顶部和底部)