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