web-dev-qa-db-fra.com

mysqli_select_db () s'attend à ce que le paramètre 1 soit mysqli, chaîne donnée

Je suis nouveau sur Mysqli_ * et j'obtiens ces erreurs:

Avertissement: mysqli_select_db () s'attend à ce que le paramètre 1 soit mysqli, chaîne donnée dans D:\Hosting\9864230\html\includes\connection.php sur la ligne 11

Avertissement: mysqli_error () attend exactement 1 paramètre, 0 donné dans D:\Hosting\9864230\html\includes\connection.php sur la ligne 13

La sélection de la base de données a échoué:

<?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());
}
?>
8
user1551909

Vos arguments sont dans le mauvais ordre. La connexion vient en premier selon le docs

<?php
require("constants.php");

// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
    die("Database connection failed");
}

// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));
}
?>
48
Chris McKnight
// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));
}

Vous avez obtenu l'ordre des arguments de mysqli_select_db() en arrière. Et mysqli_error() vous oblige à fournir un argument de connexion. mysqli_XXX n'est pas comme mysql_XXX, ces arguments ne sont plus optionnels.

Notez également qu'avec mysqli, vous pouvez spécifier la base de données dans mysqli_connect():

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if (!$connection) {
  die("Database connection failed: " . mysqli_connect_error();
}

Vous devez utilisez mysqli_connect_error(), pas mysqli_error(), pour obtenir l'erreur de mysqli_connect(), car cette dernière vous oblige à fournir une connexion valide .

5
Barmar