mysqli_select_db
funktion, när du använder det procedurmässiga API:t kräver att du skickar en faktisk anslutning som en första parameter, som visas på man-sidorna
. Den här anslutningen, eller länken, är vad mysqli_connect
returnerar, så du bör inte ignorera vad mysqli_connect
returnerar
, utan hellre tilldela den till en variabel.
Funktionens signatur berättar tydligt allt detta, så snälla, RTM . Här är några kopierade övningar:
\/=============================|
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 att du måste skriva:
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');
Liksom den manuella &&-signaturen visar denna mysqli_select_db
returnerar en bool. true
betyder att DB har valts, false
indikerar fel. Det är bäst att ta för vana att kontrollera funktionsreturvärden . Hur trivialt det än kan verka. 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 enkelt utelämna detta andra funktionsanrop genom att skicka det valda DB-namnet till mysqli_connect
funktion från av:
$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');
Vilket sparar dig kostnaden för ett extra funktionsanrop, vilket förbättrar prestandan något. Jag har också ändrat localhost
sträng till IP-adressen 127.0.0.1, vilket också kan hjälpa, eftersom användningen av IP betyder att strängen inte behöver lösas till motsvarande IP-adress.
Allt som allt tror jag att det är bäst att du spenderar lite tid läser dokumentationen