Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd połączenia PHP z bazą danych

mysqli_select_db funkcja, gdy użycie proceduralnego API wymaga przekazania rzeczywistego połączenia jako pierwszego parametru, jak pokazano na stronach podręcznika . To połączenie lub link jest tym, co mysqli_connect zwraca, więc nie powinieneś ignorować tego, co mysqli_connect zwraca , ale raczej przypisz go do zmiennej.
Podpis funkcji jasno mówi o tym wszystkim, więc proszę RTM . Oto kilka prac typu kopiuj-wklej:

                            \/=============================|
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 =======================|

Oznacza to, że będziesz musiał napisać:

$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'video_system');

Podobnie jak manualny pokaz &&podpisów, ten mysqli_select_db zwraca bool. true oznacza, że ​​baza danych została pomyślnie wybrana, false wskazuje na awarię. Najlepiej wyrobić w sobie nawyk sprawdzania wartości zwracanych przez funkcje . Bez względu na to, jak trywialne może się to wydawać. A więc:

$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

Ale możesz łatwo pominąć to drugie wywołanie funkcji, przekazując wybraną nazwę bazy danych do mysqli_connect funkcja od początku:

$db = mysqli_connect('127.0.0.1', 'root', '', 'video_system');

Co oszczędza koszty związane z wywołaniem dodatkowej funkcji, co nieznacznie poprawia wydajność. Zmieniłem również localhost ciąg na adres IP 127.0.0.1, co również może pomóc, ponieważ użycie adresu IP oznacza, że ​​ciąg nie musi być rozwiązany na odpowiedni adres IP.
W sumie myślę, że najlepiej poświęcić trochę czasu czytanie dokumentacji




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znaczenie backticku wokół nazwy tabeli w zapytaniu MySQL

  2. Jak przekonwertować kod MySQL na instrukcję PDO?

  3. Najszybszy sposób na podzbiór — data.table vs. MySQL

  4. gdzie 1=1 stwierdzenie

  5. Numer wiersza na grupę w mysql