php mysqli_select_db() 期望参数 1 是 mysqli,给定的字符串
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13979210/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
mysqli_select_db() expects parameter 1 to be mysqli, string given
提问by user1551909
I am new to Mysqli_* and I am getting these errors:
我是 Mysqli_* 的新手,出现以下错误:
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in D:\Hosting\9864230\html\includes\connection.php on line 11
Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\Hosting\9864230\html\includes\connection.php on line 13
警告:mysqli_select_db() 期望参数 1 为 mysqli,字符串在 D:\Hosting\9864230\html\includes\connection.php 中第 11 行
警告:mysqli_error() 需要 1 个参数,0 在第 13 行的 D:\Hosting\9864230\html\includes\connection.php 中给出
Database selection failed:
数据库选择失败:
<?php
require("constants.php");
// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
die("Database connection failed: " . mysqli_error());
}
// 2. Select a database to use
$db_select = mysqli_select_db(DB_NAME,$connection);
if (!$db_select) {
die("Database selection failed: " . mysqli_error());
}
?>
回答by Chris McKnight
Your arguments are in the wrong order. The connection comes first according to the docs
你的论点顺序错误。根据文档,连接首先出现
<?php
require("constants.php");
// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
error_log("Failed to connect to MySQL: " . mysqli_error($connection));
die('Internal server error');
}
// 2. Select a database to use
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
error_log("Database selection failed: " . mysqli_error($connection));
die('Internal server error');
}
?>
回答by Barmar
// 2. Select a database to use
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
die("Database selection failed: " . mysqli_error($connection));
}
You got the order of the arguments to mysqli_select_db()backwards. And mysqli_error()requires you to provide a connection argument. mysqli_XXX is not like mysql_XXX, these arguments are no longer optional.
你得到了mysqli_select_db()向后的参数顺序。并mysqli_error()要求您提供连接参数。mysqli_XXX 不像 mysql_XXX,这些参数不再是可选的。
Note also that with mysqli you can specify the DB in mysqli_connect():
另请注意,使用 mysqli 您可以在mysqli_connect()以下位置指定数据库:
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if (!$connection) {
die("Database connection failed: " . mysqli_connect_error();
}
You mustuse mysqli_connect_error(), not mysqli_error(), to get the error from mysqli_connect(), since the latter requires you to supply a valid connection.
您必须使用mysqli_connect_error(),而不是mysqli_error()从 获取错误mysqli_connect(),因为后者要求您提供有效的连接。

