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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 06:22:54  来源:igfitidea点击:

mysqli_select_db() expects parameter 1 to be mysqli, string given

phpmysqli

提问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(),因为后者要求您提供有效的连接。