Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de connexion PHP avec la base de données

le mysqli_select_db fonction, lorsque l'utilisation de l'API procédurale vous oblige à passer une connexion réelle comme premier paramètre, comme indiqué sur les pages de manuel . Cette connexion, ou lien, est ce que mysqli_connect renvoie, donc vous ne devriez pas ignorer ce que mysqli_connect renvoie , mais plutôt l'affecter à une variable.
La signature de la fonction vous indique clairement tout cela, alors s'il vous plaît, RTM . Voici quelques exercices copiés-collés :

                            \/=============================|
bool mysqli_select_db ( mysqli $link , string $dbname )   ||
//returns bool         argument 1       argument 2        ||
mysqli mysqli_connect ([...])                             ||
//returns type mysqli  accepts vast number of arguments   ||
              //                                          ||
              |======== useful here =======================|

Cela signifie que vous devrez écrire :

$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');

Comme le spectacle de signature &&manuel, ce mysqli_select_db renvoie un booléen. true signifie que la base de données a été sélectionnée avec succès, false indique un échec. Il est préférable de prendre l'habitude de vérifier les valeurs de retour des fonctions . Aussi trivial que cela puisse paraître. Donc :

$db = mysqli_connect('localhost', 'root', '');
if (!mysqli_select_db($db, 'video_system'))
{//if return value is false, echo error message and exit script
    echo 'Failed to select db "video_system": ', mysqli_error($db), PHP_EOL;
    $db = null;//optional, but generally safer
    exit(1);//stop execution
}
//db selected, get to work here

Mais vous pouvez facilement omettre ce deuxième appel de fonction, en passant le nom de la base de données de votre choix au mysqli_connect fonction depuis l'arrêt :

$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');

Ce qui vous évite la surcharge d'un appel de fonction supplémentaire, ce qui améliore légèrement les performances. J'ai aussi changé le localhost chaîne à l'adresse IP 127.0.0.1, ce qui peut également aider, car l'utilisation de l'IP signifie que la chaîne n'a pas besoin d'être résolue en l'adresse IP correspondante.
Dans l'ensemble, je pense qu'il vaut mieux que vous passiez du temps lire la documentation