Mysql
 sql >> Database >  >> RDS >> Mysql

Errore di connessione PHP con il database

il mysqli_select_db funzione, quando si utilizza l'API procedurale richiede di passare una connessione effettiva come primo parametro, come mostrato nelle pagine man . Questa connessione, o collegamento, è ciò che mysqli_connect restituisce, quindi non dovresti ignorare ciò che mysqli_connect resi , ma piuttosto assegnalo a una variabile.
La firma della funzione ti dice chiaramente tutto questo, quindi per favore, RTM . Ecco alcuni esercizi copia-incolla:

                            \/=============================|
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 =======================|

Ciò significa che dovrai scrivere:

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

Come il manuale &&mostra la firma, questo mysqli_select_db restituisce un bool. true significa che il DB è stato selezionato correttamente, false indica il fallimento. È meglio prendere l'abitudine di controllare i valori restituiti dalle funzioni . Non importa quanto possa sembrare banale. Quindi:

$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

Ma puoi facilmente omettere questa seconda chiamata di funzione, passando il nome DB scelto a mysqli_connect funzione da fuori:

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

Ciò consente di risparmiare il sovraccarico di una chiamata di funzione aggiuntiva, che migliora leggermente le prestazioni. Ho anche cambiato localhost stringa all'indirizzo IP 127.0.0.1, che può anche essere d'aiuto, perché l'utilizzo dell'IP significa che la stringa non deve essere risolta nell'indirizzo IP corrispondente.
Tutto sommato, penso che sia meglio dedicare un po' di tempo lettura della documentazione