mysqli_select_db
funktion, når du bruger den proceduremæssige API kræver, at du sender en faktisk forbindelse som en første parameter, som vist på man-siderne
. Denne forbindelse, eller link, er hvad mysqli_connect
returnerer, så du bør ikke ignorere hvad mysqli_connect
returnerer
, men tildel den i stedet til en variabel.
Funktionens signatur fortæller dig tydeligt alt dette, så venligst RTM . Her er et par copy-pasted øvelser:
\/=============================|
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 =======================|
Det betyder, at du bliver nødt til at skrive:
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');
Ligesom den manuelle &&-signatur viser denne mysqli_select_db
returnerer en bool. true
betyder, at DB'en blev valgt, false
indikerer fejl. Det er bedst at vænne sig til at tjekke funktionsreturværdier . Uanset hvor trivielt det kan virke. Så:
$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
Men du kan nemt udelade dette andet funktionskald ved at videregive det valgte DB-navn til mysqli_connect
funktion fra slukket:
$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');
Hvilket sparer dig for omkostningerne ved et ekstra funktionskald, hvilket forbedrer ydeevnen en smule. Jeg har også ændret localhost
streng til IP-adressen 127.0.0.1, hvilket også kan hjælpe, fordi brug af IP betyder, at strengen ikke behøver at blive løst til den tilsvarende IP-adresse.
Alt i alt synes jeg, det er bedst at bruge lidt tid læser dokumentationen