sql >> Base de Datos >  >> RDS >> Mysql

Error de conexión de PHP con la base de datos.

el mysqli_select_db función, cuando se utiliza la API de procedimiento requiere que pase una conexión real como primer parámetro, como se muestra en las páginas man . Esta conexión, o enlace, es lo que mysqli_connect devuelve, por lo que no debe ignorar lo que mysqli_connect devoluciones , sino más bien asígnela a una variable.
La firma de la función le dice todo esto claramente, así que por favor, RTM . Aquí hay algunos ejercicios copiados y pegados:

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

Esto significa que tendrás que escribir:

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

Al igual que el manual y la demostración de la firma, este mysqli_select_db devuelve un bool. true significa que la base de datos se seleccionó correctamente, false indica fracaso. Lo mejor es adquirir el hábito de comprobar los valores de retorno de la función . No importa lo trivial que pueda parecer. Entonces:

$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

Pero puede omitir fácilmente esta segunda llamada de función, pasando el nombre de la base de datos de su elección a mysqli_connect función desde el principio:

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

Lo que le ahorra la sobrecarga de una llamada de función adicional, lo que mejora ligeramente el rendimiento. También he cambiado el localhost cadena a la dirección IP 127.0.0.1, que también puede ayudar, porque usar la IP significa que la cadena no necesita resolverse a la dirección IP correspondiente. rel="nofollow noreferrer noopener" href="https://www.php.net/manual/en/class.mysqli.php">leyendo la documentación