MySQL Fetch menggunakan PHP

0 706

PHP menyediakan daftar besar fungsi MySQL untuk mengakses database dari front end. Di antara fungsi tersebut, kita akan membahas beberapa di antaranya yang digunakan untuk mengambil data dari database. Fungsi semacam itu berbeda dengan jenis hasil yang diharapkan mereka kembalikan.

Di PHP, MySQL mengambil hasil yang bisa didapat dengan fungsi sebagai berikut. Semua fungsi ini hanya akan mengambil satu baris per panggilan fungsi. Jika diperlukan, kita harus memanggil fungsi tersebut dengan sebuah lingkaran agar MySQL selanjutnya mengambil hasil baris demi baris.

  • mysql_fetch_row()
  • mysql_fetch_assoc()
  • mysql_fetch_array()
  • mysql_fetch_object()
  • mysql_fetch_lengths()
  • mysql_fetch_field()

mysql_fetch_row ()

Fungsi ini akan mengambil data tentang satu baris yang dengannya pointer baris ada. Setelah mengambil keseluruhan detail baris, maka akan dikembalikan sebagai array dengan indeks angka yang sesuai dengan bidang MySQL offset.

Untuk mendapatkan array resultan seperti itu, mysql_fetch_row () memerlukan data sumber daya yang dikembalikan dengan mengeksekusi query yang sesuai dengan operasi pengambilan MySQL. Jika tidak ada hasil yang ditemukan untuk kueri, maka mysql_fetch_row () akan mengembalikan apa pun seperti yang diharapkan.

Mari kita perhatikan tabel Users, yang telah kita ambil misalnya saat melihat tentang MySQL Left JOIN dan MySQL Right JOIN. Dan tabel data dan strukturnya adalah sebagai berikut.

Program PHP berikut adalah untuk mengambil data MySQL menggunakan mysql_fetch_row (). Sebelum itu, koneksi database dibuat dengan dua baris pertama seperti biasa.

$conn = mysql_connect("localhost","root","");
mysql_select_db("phppot_examples",$conn);
$query = "SELECT * from Users"; 
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($result);
print "<pre>";
print_r($row);
print "<pre>";

Program ini akan mengembalikan nilai dari seluruh baris pertama sejak pointer baris berada di awal. Maka outputnya akan seperti yang ditunjukkan di bawah ini yang bisa diperiksa silang dengan data tabel yang sudah ditunjukkan.

Array
(
[0] => 1
[1] => admin
[2] => admin123
[3] => student
)

Jika kita ingin mendapatkan semua informasi baris, kita harus melakukan proses yang sama secara rekursif dengan iterasi melalui satu lingkaran sampai akhir record. Sebagai contoh,

while($row = mysql_fetch_row($result)) {
print "<pre>";
print_r($row);
print "<pre>";
}

mysql_fetch_assoc ()

Fungsi ini mirip dengan mysql_fetch_row (), kecuali itu, ia akan mengembalikan array informasi baris yang berisi nilai kolom yang diindeks dengan nama kolom. Jadi, tipe hasil adalah array asosiatif dimana setiap nama kolom dan nilai dari satu baris dikaitkan bersama sebagai nama, pasangan nilai.

Mari kita ganti mysql_fetch_row () dengan mysql_fetch_assoc () pada program di atas yang akan mengembalikan array berikut.

Array
(
[user_id] => 1
[user_name] => admin
[password] => admin123
[user_type] => student
)

Dengan menggunakan jenis MySQL fetch ini, kita bisa mengakses data dengan namanya dan bukan offsetnya. Karena, mengingat urutan bidang terlalu sulit untuk daftar kolom yang besar, akses dengan nama field mudah dilakukan dan di sana oleh fungsi ini bisa lebih disukai dalam skenario seperti itu.

mysql_fetch_array ()

Metode pengambilan MySQL ini menghasilkan array resultan dengan kedua indeks, yaitu field offset dan field name. Jadi, itu akan digunakan paling mungkin dengan memiliki kedua pilihan untuk mengindeks.

Tidak seperti di atas dua fungsi, mysql_fetch_array () menerima argumen opsional untuk menentukan jenis indeks array resultan dan nilai yang mungkin adalah,

  • MYSQL_BOTH – Ini adalah nilai default yang akan diambil jika tidak ada argumen kedua yang diberikan untuk fungsi ini. Ini akan menghasilkan resultan array dengan kedua indeks.
  • MYSQL_NUM – Dengan opsi ini, mysql_fetch_array () akan mengembalikan array dengan indeks offset sama dengan mysql_fetch_row ().
  • MYSQL_ASSOC – Dengan opsi ini, mysql_fetch_array () akan mengembalikan array dengan nama indeks sama seperti mysql_fetch_assoc ().

Dengan mengganti mysql_fetch_row () dengan mysql_fetch_array (), output array akan,

Array
(
    [0] => 1
    [user_id] => 1
    [1] => admin
    [user_name] => admin
    [2] => admin123
    [password] => admin123
    [3] => student
    [user_type] => student
)

mysql_fetch_object ()

Fungsi mysql_fetch_object () akan mengembalikan data MySQL dengan struktur yang sama seperti yang dikembalikan oleh mysql_fetch_assoc (), namun jenisnya berbeda. mysql_fetch_object () mengembalikan objek dimana mysql_fetch_assoc () mengembalikan array. Jadi, cara mengakses data ini juga akan berbeda. Sebagai contoh, jika kita diminta untuk mengakses user_name, setelah array fetch, maka akan dilakukan oleh,

echo $row["user_name"];

Atau setelah mengambil objek, itu akan terjadi,

echo $row->user_name;

mysql_fetch_lengths ()

Fungsi PHP ini digunakan untuk mengembalikan panjang string setiap nilai kolom dari baris yang baru saja diambil. Jadi, sebelum menghitung panjang string, salah satu dari fungsi pengambilan MySQL di atas perlu dipanggil.

Sebagai contoh, program berikut adalah mengambil data baris tunggal menggunakan mysql_fetch_object () dan untuk mencetak array panjang yang sesuai ke browser.

$conn = mysql_connect("localhost","root","");
mysql_select_db("phppot_examples",$conn);
$query = "SELECT * from Users"; 
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_object($result);
$student_length = mysql_fetch_lengths($result);
print "<pre>";
print_r($row);
print_r($student_length);
print "<pre>";

Dan hasilnya adalah,

stdClass Object
(
[user_id] => 1
[user_name] => admin
[password] => admin123
[user_type] => student
)
Array
(
[0] => 1
[1] => 5
[2] => 8
[3] => 7
)

Jelas, array sifat objek dan panjang array dikembalikan seperti yang ditunjukkan di atas yang bisa diperiksa silang secara manual untuk memastikan nilai properti tetap benar seperti yang diharapkan.

mysql_fetch_field ()

Tidak seperti fungsi di atas, mysql_fetch_field () adalah untuk mendapatkan informasi bidang tabel database MySQL dan bukan data rekam. Dan, fungsi ini juga mengambil satu bidang per panggilan dan membutuhkan implementasi loop untuk mendapatkan lebih banyak bidang. Array informasi ini akan dikembalikan sebagai objek yang meliputi properti seperti, nama tabel, nama field, panjang maksimum lapangan, flag flag utama offset dan lain-lain. Misalnya, rincian field user_id dari tabel Pengguna dikembalikan sebagai berikut.

stdClass Object
(
 [name] => user_id
 [table] => Users
 [def] => 
 [max_length] => 1
 [not_null] => 1
 [primary_key] => 1
 [multiple_key] => 0
 [unique_key] => 0
 [numeric] => 1
 [blob] => 0
 [type] => int
 [unsigned] => 0
 [zerofill] => 0
)

Catatan: mysql extenstion yang telah kita lihat di sini tidak berlaku lagi seperti versi PHP 5.5. Jadi perpanjangan alternatif mysqli digunakan sebagai pengganti versi PHP selanjutnya. Jadi untuk versi selanjutnya, fungsi di atas harus diubah dengan mengganti mysql awalannya seperti mysqli

Get real time updates directly on you device, subscribe now.

Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.