[英]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.