mysqli_select_db
функция, когато използвате процедурния API, изисква от вас да предадете действителна връзка като първи параметър, както е показано на страниците на ръководството
. Тази връзка или връзка е това, което mysqli_connect
връща, така че не бива да пренебрегвате това, което mysqli_connect
връща
, а по-скоро го присвоете на променлива.
Подписът на функцията ясно ви казва всичко това, така че моля, RTM . Ето няколко копирани и поставени упражнения:
\/=============================|
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 =======================|
Това означава, че ще трябва да напишете:
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');
Подобно на ръчното &&шоу за подписи, това mysqli_select_db
връща bool. true
означава, че DB е избрана успешно, false
показва неуспех. Най-добре е да придобиете навика да проверявате стойностите, върнати от функцията . Колкото и тривиално да изглежда. И така:
$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
Но можете лесно да пропуснете това второ извикване на функция, като предадете избраното от DB име на mysqli_connect
функция от изключване:
$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');
Което ви спестява режийните разходи за допълнително извикване на функция, което леко подобрява производителността. Промених и localhost
низ към IP адреса 127.0.0.1, което също може да помогне, тъй като използването на IP означава, че низът не трябва да се разрешава до съответния IP адрес.
Като цяло мисля, че е най-добре да отделите известно време четене на документацията