2 votes

Message d'erreur "Aucune base de données sélectionnée

Je change toutes mes requêtes qui utilisent PHP MySQL en MySQLi.

J'ai créé un fichier appelé db.php avec les paramètres de connexion.

Le dossier comprend

<?php
$db = new mysqli('localhost','mysqlusername','mysqlpassword');
echo "<h1>Success database connection</h1>";
if($db->connect_errno > 0)
{
die('No connection [' . $db->connect_error . ']');
}
?>

J'inclus le fichier avec :

require_once "/location/db.php";    

après cela, j'utilise :

 if($db->connect_error)
 {
   echo "Not connected, error: ".$db->connect_error;
 }  
 else
 {
   echo "Connected.";
 }

L'écho est connecté, donc je suppose que ma connexion est bonne.

J'ai 3 variables PHP que je veux insérer dans ma table de base de données Code

Je fais d'abord écho aux variables, donc je suis sûr qu'elles ont un contenu.

Après avoir validé ma connexion (renvoyé Connected) et renvoyé le contenu des variables avec lesquelles je veux faire la requête :

$sql = "INSERT INTO 'Code' (`Name`, `Code`, `Admin`)
VALUES ('$name', '$code', '$admin')"; 
echo $sql;//show query
// Performs the $sql query on the server to insert the values
if ($db->query($sql) === TRUE)
{
    echo 'User Created.';
}
else 
{
    echo 'Errorcreating : '. $db->error;
}

Je reçois le message Errorcreating : No database selected (aucune base de données sélectionnée).

J'ai l'écho $sql pour me montrer la requête.

Si je copie la requête directement dans SQL, cela fonctionne comme il se doit.

C'est la première fois que j'utilise MySQLi, il est donc possible que j'aie fait une erreur stupide, mais je ne la trouve pas.

6voto

chandresh_cool Points 10556

Lors de l'ouverture de la connexion, vous pouvez passer le nom de la base de données comme quatrième paramètre :

$db = new mysqli('localhost','mysqlusername','mysqlpassword','database');

De plus, votre caractère d'échappement est faux. N'utilisez pas de guillemets simples autour des noms de tables, mais plutôt l'opérateur backtick.

$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')";

2voto

STT LCU Points 3112

En fait, vous n'avez pas sélectionné de base de données. Vous vous êtes connecté au serveur DB, où il peut y avoir des centaines de bases de données. Vous devez spécifier à laquelle vous envoyez les requêtes !

Votre requête est parfaite, et elle fonctionne lorsque vous la saisissez directement parce que, ce faisant, vous avez déjà spécifié la base de données à utiliser.

1voto

Ali Bahraminezhad Points 151

Vous n'avez pas sélectionné votre base de données dans le code. Selon cette page en php.net, il y a un paramètre dans mysqli_connect ou mysqli constructor que vous entrez votre nom de base de données.

Voici un exemple simple :

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

-1voto

noynac Points 19

Essayez ceci

<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X