繁体   English   中英

PHP:mysql_query及其连接说明

[英]PHP: mysql_query and it's connection explanation

我最近开始学习PHP,发现连接数据库的常用方法是:

// create connection to database
$connection = mysql_connect("localhost", "root", "password")
// Select database
$db_select = mysql_select_db("myDB", $connection);
// and finally the query..
$result = mysql_query("SELECT * FROM table", $connection);

现在我的问题是,为什么我们必须在第三步使用$ connection? 因为我们正在使用“myDB”数据库,所以我希望以这种方式编写第三步:

// and finally the query..
$result = mysql_query("SELECT * FROM table", $db_select);

但似乎,这不是如何在PHP中完成的。 谁能解释一下为什么?

连接表示数据库服务器会话 ,它会为您维护数据库状态。 当前选择的数据库只是会话状态的一部分,因此通过传递连接,您也隐式地传递当前选定的数据库(以及各种其他必要信息)。 换句话说, 连接选定的数据库更通用。

(正如其他人已经指出的那样,当您的程序只需要访问单个服务器上的单个数据库时,没有必要显式传递连接。默认情况下,MySQL将使用最近连接的会话。)

这不是必需的。 但是,它非常有用。 如果连接到同一页面上的多个数据库,则可能需要同时使用它们。 但是,如果您没有指定哪个连接,它将只使用您成功连接的最后一个连接。

<?php
$forum = mysql_connect(...);
$users = mysql_connect(...);

$me = mysql_query("", $users);
$last_forum_post = mysql_query("", $forum);
?>

但是,如果您只有一个连接,则无需将其连接。

功能说明

mysql_query ( string $query [, resource $link_identifier ] )

mysql_query() - >向数据库发送查询(对于与指定链接标识符关联的服务器上的当前活动数据库)。

参数

  • query - > SQL查询。

  • link_identifier - >如果未指定连接标识符,则假定mysql_connect()打开的最后一个链接。 如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。 如果未找到或建立连接,则会生成错误级别E_WARNING的确认。

您正在使用mysql_select_db()错误。
这不是必不可少的。
没有这个功能你可以使用mysql。
这实际上只不过是USE dbname查询的别名。

此外,您可以在一个连接中同时使用2个或更多数据库。

因此,使用DB资源而不是连接资源是没有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM