Ok, dus in de eerste functie die je probeert te vervangen
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
Laten we eerst duidelijk maken wat dit doet:
- zoekopdracht specificeren
- haal het resultaat op
- haal 0. rij ("1e" in het Engels)
- krijg kolom
user_id
Doe dit nu stap voor stap met mysqli_
:
//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'];
U hoeft de rij niet op te geven als fetch_assoc
geeft er maar één terug.
Nu voor de tweede functie
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
- zoekopdracht specificeren
- resultaat ophalen
- haal 0. rij
- als dit gelijk is aan 1:retourneer
user_id
, andersFALSE
Nu met 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;
Maar wacht - waarom heb ik mysqli_fetch_row
gebruikt
hier terwijl mysqli_fetch_assoc
hierboven gebruikt? RTM;)
Wat hebben we vandaag geleerd? Alleen omdat u uw code zo kort mogelijk kunt schrijven, betekent niet dat u dat moet doen. Als de originele code wat meer was opgesplitst, had de overgang naar MySQLi vrij eenvoudig moeten zijn, omdat je gemakkelijk kleinere delen had kunnen debuggen in plaats van een complexe uitdrukking.