Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql中未选择任何数据库_Php_Mysql - Fatal编程技术网

Php mysql中未选择任何数据库

Php mysql中未选择任何数据库,php,mysql,Php,Mysql,处理文件时,我会像这样打开和关闭连接: require("../StoredProcedure/connect.php");//users.user_id //..some query and code mysql_close(); $link_identifier = mysql_connect(...); mysql_close($link_identifier); 我对整个文件做了多次。。打开一次连接,然后在文件末尾关闭连接是否更有效 我还收到了错误消息: No databa

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

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

 //..some query and code

mysql_close();
$link_identifier = mysql_connect(...);
mysql_close($link_identifier);
我对整个文件做了多次。。打开一次连接,然后在文件末尾关闭连接是否更有效

我还收到了错误消息:

 No database selected
但我确实需要选择数据库的connect文件。为什么我会收到该消息

这就是文件中的内容:

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


连接正常..如果在一个程序/实例中有多个到数据库的连接,并且每次调用时,我都尝试使用其他查询

require('../StoredProcedure/connect.php');
脚本中数据库连接的最佳策略是在第一次需要时调用它,并在最后一次使用时关闭它。基本上在脚本的顶部和底部

旁注:

include('../StoredProcedure/connect.php');
比要求的速度快,并且如果您可以在所有内容周围使用单引号。您的脚本执行速度更快,对服务器资源的压力更小。

您不能这样做:

mysql_close();
您应该像这样关闭连接:

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

 //..some query and code

mysql_close();
$link_identifier = mysql_connect(...);
mysql_close($link_identifier);
因此,在你的情况下,它将是

mysql_close($conn);
无论如何,您不需要关闭连接,PHP在脚本结束时也会这样做


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

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

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

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

$db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD');
$db=new-PDO('mysql:host=localhost;dbname=','',PASSWORD');
我敦促您学习它,不要使用
mysql.*
函数,因为它们有很多问题(最突出的问题是没有准备好的语句)

其他要点
  • 不要使用PHP短标记(
    )。使用完整的(
    ),旧的不推荐使用,可能会在将来的项目中删除
  • 正确地缩进代码,这就解决了许多看不见的问题(要在StackOVerflow上缩进大块代码,请粘贴已经缩进的代码,高亮显示它,然后按代码按钮(或CTRL+K)。)

每次连接或出现某些情况时,您都会收到错误消息?能否发布此connect.php文件代码?不,仅在特定情况下。。我认为mysql\u close()和mysql\u connect()之间存在不平衡……但我不确定,你是说我不会因为在一个脚本中打开多个连接而失去速度,而不是在脚本顶部打开一次连接,然后在脚本底部关闭它?“每个脚本调用一次a”-这是错误的
require
不是
require\u一次
include
require
之间的唯一区别是,如果require参数中不存在文件,脚本将抛出致命错误并终止。@PeterSzymkowski捕捉正确。天晚了,我累了。我已经更新了帖子。@使用FlyingColor,包含/需要的文件越多,脚本运行所需的时间就越长。在大多数较新的服务器上,只有少量的连接是看不到的,但当你的站点每天获得1000次点击时,它会起到作用。嗯……从来没有听说过这样的惯例..mysql_close()…以前为我工作过很多次,没有任何parameters@WithFlyingColors查看我上面提到的评论@JamesWilliamsplease@PeterSzymkowski它确实声明mysql_close()将不会仅用于持久连接。我在PHP5.3服务器上使用了mysql_close(),没有任何问题。+1,php程序员需要摆脱逃避,转而使用准备好的语句。哈哈,我是一名新程序员,这就是他们在学校教我的。在我获得一些经验后,我将转到PDO和ruby on railsF***学校。尽早使用PDO。我告诉你,将来会更好。