Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка при PHP връзката с базата данни

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 адрес.
Като цяло мисля, че е най-добре да отделите известно време четене на документацията




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Хеш MySQL схема на база данни

  2. Как да синхронизирате базата данни за разработка и производство

  3. SQLite3 (или общ SQL) извлича n-ти ред от резултат от заявка

  4. Проблеми с кодирането на текст в MySQL C#

  5. Как да се свържа с MySQL DB, работеща като контейнер в docker?