Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Migrasi PHP dari mysql_* ke mysqli_

Oke, jadi di fungsi pertama Anda coba ganti

return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');

Mari kita perjelas dulu fungsinya:

  • tentukan kueri
  • ambil hasilnya
  • dapatkan 0. baris ("1st" dalam bahasa Inggris)
  • dapatkan kolom user_id

Sekarang lakukan langkah demi langkah dengan 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'];

Anda tidak perlu menentukan baris sebagai fetch_assoc mengembalikan hanya satu.

Sekarang untuk fungsi kedua

return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
  • tentukan kueri
  • mengambil hasil
  • dapatkan 0. baris
  • jika ini sama dengan 1:kembalikan user_id , jika tidak FALSE

Sekarang dengan 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;

Tapi tunggu - mengapa saya menggunakan mysqli_fetch_row di sini sedangkan mysqli_fetch_assoc digunakan di atas? RTM;)

Apa yang telah kita pelajari hari ini? Hanya karena Anda dapat menulis kode Anda sesingkat mungkin bukan berarti Anda harus melakukannya. Jika kode asli telah dipecah sedikit lagi, transisi ke MySQLi seharusnya cukup mudah, karena Anda dapat dengan mudah men-debug bagian yang lebih kecil daripada ekspresi yang rumit.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Karakter Melarikan Diri Seperti $ dan % | MySQL dan PHP

  2. Dapatkan hanya digit menggunakan regexp

  3. Kesalahan #1064 dengan INSERT INTO

  4. MySQL:Gabung kiri dan kolom dengan nama yang sama di tabel yang berbeda

  5. Apakah ada yang setara untuk @@error SQL Server di MySQL