Ok, also versuchen Sie in der ersten Funktion,
zu ersetzenreturn mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
Lassen Sie uns zuerst klarstellen, was das bewirkt:
- Abfrage angeben
- Ergebnis abrufen
- erhalte 0. Zeile ("1st" auf Englisch)
- Spalte
user_id
erhalten
Führen Sie dies nun Schritt für Schritt mit mysqli_
durch :
//specify query
$result = mysqli_query(connect(),"SELECT `user_id` FROM `users` WHERE `username` = '$username'");
//fetch result
$row = mysqli_fetch_assoc($result);
//get column
return $row['user_id'];
Sie müssen die Zeile nicht als fetch_assoc
angeben gibt nur einen zurück.
Nun zur zweiten Funktion
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
- Abfrage angeben
- Ergebnis abrufen
- erhalte 0. Zeile
- wenn dies gleich 1 ist:gib
user_id
zurück , sonstFALSE
Jetzt mit mysqli_
:
//specify query
$result = mysqli_query(connect(),"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
//fetch result
$row = mysqli_fetch_row($result);
//if first returned column is equal to 1 return $user_id
//otherwise FALSE
return ($row[0]==1) ? $user_id : FALSE;
Aber warten Sie - warum habe ich mysqli_fetch_row
verwendet
hier hingegen mysqli_fetch_assoc
wurde oben verwendet? RTM;)
Was haben wir heute gelernt? Nur weil Sie Ihren Code so kurz wie möglich schreiben können, bedeutet das nicht, dass Sie es tun sollten. Wenn der ursprüngliche Code etwas mehr aufgeteilt worden wäre, hätte der Übergang zu MySQLi ziemlich einfach sein sollen, da Sie kleinere Teile anstelle eines komplexen Ausdrucks leicht hätten debuggen können.