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

sesja logowania zniszczona po odświeżeniu

mysqli_real_escape_string() WYMAGA masz aktywne/ustanowione połączenie z bazą danych. Ponieważ robisz m_r_e_s() zadzwoń ZANIM się połączysz, po prostu otrzymasz z powrotem wartość logiczną FAŁSZ oznaczającą niepowodzenie. Więc usuwasz swoje „cytowane” wartości.

Fałszywe wartości logiczne wstawione do ciągu są konwertowane na puste ciągi, więc Twoje zapytania zaczynają wyglądać tak, jak

SELECT ... WHERE username=''
                           ^---see the boolean false in there?

Twoja sekwencja kodu powinna być:

session_start();
connect_to_db();
prepare_variables();
do_query();

A skoro używasz mysqli, dlaczego mimo to ręcznie zmieniasz znaczenie zmiennych? Możesz po prostu użyć przygotowanej instrukcji + symboli zastępczych i całkowicie ominąć problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ciąg znaków ucieczki do użycia w wyszukiwaniu pełnotekstowym MySQL

  2. tablica dla wielu warunków where_in w codeigniter

  3. MySQL - Jak wstawić do tabeli, która ma relację wiele do wielu

  4. MYSQL UPDATE z IN i Subquery

  5. Czy naprawdę potrzebne są cudzysłowy wokół tabel i kolumn w zapytaniu MySQL?