PHP Conference Japan 2024

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db选择 MySQL 数据库

警告

此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中移除。应改用 MySQLiPDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南。此函数的替代方法包括

描述

mysql_select_db(string $database_name, resource $link_identifier = NULL): bool

设置与指定链接标识符关联的服务器上的当前活动数据库。对 mysql_query() 的后续每次调用都将在活动数据库上进行。

参数

database_name

要选择的数据库的名称。

link_identifier

MySQL 连接。如果未指定链接标识符,则假定为 mysql_connect() 打开的最后一个链接。如果找不到此类链接,它将尝试创建一个链接,就像 mysql_connect() 被调用时没有参数一样。如果找不到或未建立连接,则会生成 E_WARNING 级别的错误。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 mysql_select_db() 示例

<?php

$link
= mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!
$link) {
die(
'未连接:' . mysql_error());
}

// 将 foo 设置为当前数据库
$db_selected = mysql_select_db('foo', $link);
if (!
$db_selected) {
die (
'无法使用 foo:' . mysql_error());
}
?>

注释

注意:

为了向后兼容性,可以使用以下已弃用的别名:mysql_selectdb()

参见

添加注释

用户贡献的注释 2 个注释

james at gogo dot co dot nz
20 年前
如果您同时在同一服务器上使用两个数据库,请小心。默认情况下,mysql_connect 对具有相同服务器参数的多个调用返回相同的连接 ID,这意味着如果您执行

<?php
$db1
= mysql_connect(...内容...);
$db2 = mysql_connect(...内容...);
mysql_select_db('db1', $db1);
mysql_select_db('db2', $db2);
?>

那么 $db1 实际上将选择数据库 'db2',因为对 mysql_connect 的第二次调用只是返回了已打开的连接 ID!

您在这里有两个选择,您可以先对每次查询调用 mysql_select_db,或者如果您使用的是 php4.2+,则 mysql_connect 有一个参数可以强制创建新的链接。
Maarten
19 年前
关于如果对 mysql_connect() 使用相同的参数则打开连接:这可以通过使用该函数的 'new_link' 参数来避免。

此参数自 PHP 4.2.0 起可用,即使调用使用相同的参数,也可以打开新的链接。
To Top