Cara Meniru Fungsi Fungsi mysql_result() PHP dalam MySQLi
Fungsi mysql_result(), yang biasa digunakan dalam kod PHP warisan, membolehkan pembangun mengakses data tertentu dengan cepat daripada hasil pertanyaan MySQL. Walau bagaimanapun, fungsi ini tidak disokong secara asli dalam MySQLi, sambungan yang dipertingkatkan dan disyorkan untuk berinteraksi dengan pangkalan data MySQL.
Pendekatan Alternatif dengan Mengambil Baris
Satu pendekatan biasa untuk mendapatkan semula data daripada keputusan pertanyaan MySQLi adalah untuk mengambil baris yang sepadan menggunakan kaedah fetch_assoc(). Berikut ialah contoh:
if ($r && $r->num_rows) { $row = $r->fetch_assoc(); $blarg = $row['blah']; }
Pendekatan ini melibatkan berbilang baris dan mungkin kurang cekap daripada menggunakan fungsi khusus seperti mysql_result().
Fungsi Setara Tersuai
Untuk meniru fungsi mysql_result() dalam MySQLi, anda boleh mencipta fungsi tersuai sebagai ditunjukkan di bawah:
function mysqli_result($res,$row=0,$col=0){ $numrows = mysqli_num_rows($res); if ($numrows && $row <= ($numrows-1) && $row >=0){ mysqli_data_seek($res,$row); $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res); if (isset($resrow[$col])){ return $resrow[$col]; } } return false; }
Fungsi ini menerima indeks baris dan lajur sebagai parameter dan mengembalikan data yang sepadan jika wujud. Ia juga mengendalikan kemungkinan ralat yang berkaitan dengan permintaan di luar sempadan.
Penggunaan:
Fungsi mysqli_result() boleh digunakan dengan cara yang serupa dengan mysql_result() :
if ($r && $r->num_rows) $blarg = mysqli_result($r, 0, 'blah');
Faedah dan Had
Fungsi mysqli_result() tersuai membenarkan kod yang lebih ringkas dan mengurangkan bilangan baris yang diperlukan untuk mendapatkan data daripada hasil pertanyaan MySQLi. Walau bagaimanapun, perlu diingatkan bahawa fungsi ini bergantung pada pemanggilan fungsi dinamik PHP dan mungkin dikenakan penalti prestasi yang kecil berbanding dengan pelaksanaan mysql_result() asal.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Fungsi `mysql_result()` PHP dengan MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!