-1

好的,基本上我知道我们使用

$conn=mysql_connect($dbhost,$dbuser,$dbpass);

然后使用

mysql_select_db("dbname",$conn)

到目前为止一切顺利,但是选择和连接到数据库有什么区别?或者我是连接到数据库服务器然后在所有可用数据库中选择所需的数据库吗?提前谢谢。

4

5 回答 5

4

不再支持功能mysql_*,它们已正式弃用不再维护,将来将被删除您应该使用PDOMySQLi更新您的代码,以确保您的项目在未来的功能。


不同之处在于,仅连接到数据库服务器将不允许您创建表或选择表,直到您选择要用于原因的数据库。

有了mysqli这个也更简单:

$db = new mysqli($host,$user,$pass,$dbselect);
if($db->connect_error)
        die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
于 2013-06-17T03:04:42.577 回答
1

mysql_*功能不再维护并被正式弃用。看到红框了吗?了解预处理语句,并使用PDOMySQLi——本文将帮助您决定使用哪一个。

mysql_query()向与指定链接标识符关联的服务器上当前活动的数据库发送唯一查询(不支持多个查询)。

文档mysql_query

mysql_connect()打开或重用与 MySQL 服务器的连接。

文档mysql_connect

于 2013-06-17T03:04:28.790 回答
0

mysql_connect将您连接到数据库服务器而不是数据库,同时mysql_select_db选择在当前 mysql 连接上使用哪个数据库

MySQL 是一个服务器。您不仅仅是“连接”到数据库。还涉及其他层。您首先连接到服务器,然后选择数据库。

于 2013-06-17T03:04:31.493 回答
0

是的,连接意味着您针对该 MySQL 实例验证您的用户和密码。然后,您可以访问您有权查看的任何数据库。

选择数据库仅意味着当您在没有限定数据库名称的情况下引用表时,它将使用该数据库作为默认数据库。但是您仍然可以查询任何数据库中的任何表,您只需为其添加前缀,如databasename.tablename.

PS:正如其他人所评论的那样,您应该避免使用 mysql_* 函数,因为它们最近已被弃用。PHP 为 MySQL 提供了另外两个接口,它们具有更多功能并且可以以面向对象的方式使用。

于 2013-06-17T03:04:58.223 回答
0

您必须先连接到数据库主机,然后选择数据库。否则,如果你没有连接到数据库主机,那么选择数据库有什么意义呢?

哦,还有建议,不要再使用mysql_*函数了。请改用 PDO。

于 2013-06-17T03:06:31.507 回答