Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anmeldesitzung nach Aktualisierung zerstört

mysqli_real_escape_string() ERFORDERLICH Sie müssen eine aktive/hergestellte Verbindung zur DB haben. Da Sie das m_r_e_s() tun Anrufen, BEVOR Sie eine Verbindung herstellen, erhalten Sie einfach den booleschen Wert FALSE zurück, um einen Fehler anzuzeigen. Sie werfen also Ihre "zitierten" Werte in den Papierkorb.

Boolesche falsche Werte, die in eine Zeichenfolge eingefügt werden, werden einfach in leere Zeichenfolgen umgewandelt, sodass Ihre Abfragen wie folgt aussehen

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

Ihre Codesequenz sollte lauten:

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

Und da Sie mysqli verwenden, warum maskieren Sie Variablen trotzdem manuell? Sie könnten einfach eine vorbereitete Anweisung + Platzhalter verwenden und das Problem vollständig umgehen.