贝利信息

php数据库怎么进指定数据库的mysql_php选库连mysql法【步骤】

日期:2026-01-25 00:00 / 作者:雪夜
推荐使用mysqli或PDO连接MySQL;mysqli可在连接时第4参数指定库名,或用mysqli_select_db()切换;PDO通过DSN一步指定dbname更安全,且需加charset=utf8mb4防乱码。

mysqli_connect() 连接后必须用 mysqli_select_db() 或在连接时指定数据库名

PHP 7.0+ 已废弃 mysql_* 系列函数(如 mysql_connectmysql_select_db),直接调用会报 Fatal error: Uncaught Error: Call to undefined function mysql_connect()。现在唯一推荐的方式是使用 mysqliPDO

最简选库路径有两种:

注意:第 4 个参数是可选的,不填就只连 MySQL 服务,没默认库;此时若执行 SELECT * FROM user 会报错 No database selected

mysqli_select_db() 必须传 resource 或 mysqli 对象,不能只传数据库名

常见错误写法:mysqli_select_db("myapp_db") —— 缺少连接句柄,会警告 mysqli_select_db() expects exactly 2 parameters

正确做法:

如果连接失败,$connfalse,后续调用 mysqli_select_db(false, "xxx") 会触发警告。务必先检查连接是否成功。

PDO 方式更安全,推荐用 PDO::__construct() 一步指定数据库

比起 mysqli 分两步(连 + 选),PDO 在构造时就把数据库名嵌进 DSN 里,天然避免漏选库问题:

$dsn = "mysql:host=localhost;dbname=

myapp_db;charset=utf8mb4"; $pdo = new PDO($dsn, $user, $pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]);

关键点:

连接失败或选库失败时,mysqli_connect_error() 和 mysqli_error() 返回不同信息

调试时容易混淆这两个函数:

典型调试片段:

$conn = mysqli_connect($host, $user, $pass);
if (!$conn) {
    die("连接失败:" . mysqli_connect_error()); // ← 这里用 mysqli_connect_error()
}
if (!mysqli_select_db($conn, "myapp_db")) {
    die("选库失败:" . mysqli_error($conn)); // ← 这里用 mysqli_error($conn)
}

漏掉这个区分,可能拿到空字符串或上一次错误残留,导致定位困难。