Mysqli Prepared Statements: Menampilkan Data

Mysqli Prepared Statements: Menampilkan Data

Mysqli Prepared Statements: Menampilkan Data

Mysqli Prepared Statements: Menampilkan Data

Pada kesempatan kali ini, kami akan membahas tentang cara menampilkan data dengan mysqli prepared statements. Setelah membahas teori tentang pengertian prepared statements pada tutorial sebelumnya, kita akan langsung praktek mengenai cara penggunaan prepared statements untuk menampilkan data dari database mysql.

Untuk membuat prepared statements, kita membutuhkan tiga langkah: prepared, bind, dan excecute.

  1. Prepared

Sebagai contoh, kami ingin menampilkan seluruh kolom dari tabel mahasiswa_phphosting di mana nama mahasiswanya adalah Neil Situmorang. Sesuai dengan fungsinya, di dalam proses prepared ini kita hanya butuh mempersiapkan query mysql, tanpa data.

Untuk proses prepared, mysqli PHP menyediakan fungsi mysqli_prepare(). Fungsi ini membutuhkan dua argumen, yakni variabel hasil pemanggilan fungsi mysqli_connect() dan prepared query yang akan dijalankan. Berikut contoh penulisannya:

1

2

3

4

5

6

7

<?php

// buat koneksi dengan mysql, gunakan database: universitas

$link = mysqli_connect(‘localhost’, ‘root’, ”, ‘universitas’);

 

// buat prepared statements

$stmt = mysqli_prepare($link, “SELECT * FROM mahasiswa_phphosting WHERE nama=?”);

?>

Hasil pemanggilan fungsi mysqli_prepare() selanjutnya disimpan ke dalam variabel $stmt. Variabel ini akan kita gunakan dalam proses bind, execute, dan dalam proses menampilkan data. Anda bebas jika ingin menukar variabel ini dengan nama lain.

Secara internal, ketika kita menggunakan fungsi mysqli_prepare(), query tersebut langsung dikirim ke mysql server. Selanjutnya di dalam mysql, query akan disimpan sementara menunggu proses bind.

  1. Bind

Pada proses bind, kita akan mengirimkan data kepada mysql. Data yang akan dikirim adalah untuk menggantikan tanda (?) yang sebelumnya dibuat pada proses prepared. Di dalam mysqli PHP, proses bind dilakukan menggunakan fungsi mysqli_stmt_bind_param(). Fungsi ini membutuhkan setidaknya tiga buah argument. Berikut adalah contohnya:

1

2

3

4

5

6

7

<?php

// siapkan “data” query

$nama_mhs=”Neil Situmorang”;

 

// hubungkan “data” dengan prepared statements

mysqli_stmt_bind_param($stmt, “s”, $nama_mhs);

?>

Argumen pertama dari fungsi mysqli_stmt_bind_param() adalah variabel hasil pemanggilan fungsi mysqli_prepare(), dalam contoh kita adalah varabel $stmt.

Argumen kedua adalah string yang menunjukkan jenis tipe data argumen ketiga, yakni data yang akan diinput kedalam query.

Argumen ketiga adalah data yang akan menggantikan tanda (?) dari query, dalam contoh kita adalah Neil Situmorang. Tetapi karena fungsi mysqli_stmt_bind_param() membutuhkan data dalam bentuk variabel, kami harus menyimpannya terlebih dahulu ke dalam variabel $nama_mhs.

Argumen kedua dari fungsi mysqli_stmt_bind_param() membutuhkan pembahasan tersendiri. Argumen ini berisi data string yang menunjukkan jenis tipe data argumen ketiga. PHP menyediakan empat jenis tipe data:

  • i = variabel bertipe integer
  • d = variabel bertipe double
  • s = variabel bertipe string
  • b = variabel bertipe blob (binary)

Karena di dalam contoh kami mengunakan variabel $nama_mhs yang bertipe string, maka di dalam argumen kedua ditulis: ā€œsā€. Tetapi apabila kami mengganti variabel ketiga menjadi umur yang bertipe integer, maka argumen kedua ini menjadi ā€œiā€.

  1. Execute

Setelah proses bind selesai, langkah berikutnya adalah menjalankan query dengan menggunakan fungsi mysqli_stmt_execute(). Fungsi ini membutuhkan satu buah argumen, yakni variabel hasil pemanggilan fungsi mysqli_prepare():

1

2

3

<?php

mysqli_stmt_execute($stmt);

?>

Fungsi mysqli_stmt_execute() menginstruksikan kepada mysql untuk segera menjalankan perintah prepared statement yang telah dibuat. Sampai di sini proses menjalankan perintah query telah terkirim ke mysql. Selanjutnya, kita akan menampilkan data hasil query.

Menampilkan Data Hasil Query

Untuk menampilkan hasil query, kita mengambil data mysql dengan fungsi mysqli_stmt_get_result(). Fungsi ini membutuhkan satu argumen berupa variabel hasil fungsi mysqli_prepare(). Fungsi ini juga mengembalikan nilai bertipe resources yang selanjutnya bisa digunakan untuk menampilkan data.

1

2

3

4

<?php

// ambil hasil query

$result=mysqli_stmt_get_result($stmt);

?>

Selanjutnya, untuk menampilkan data kita bisa menggunakan cara biasa menggunakan mysql_fetch_row() atau mysql_fetch_array():

1

2

3

4

5

6

7

<?php

// tampilkan hasil query

while ($row= $result->fetch_row()) {

echo “$row[0] $row[1] $row[2] $row[3] $row[4]”;

echo “<br />”;

}

?>

Langkah terakhir yang bersifat opsional adalah menutup proses prepared statement dengan fungsi mysqli_stmt_close(). Tetapi sama dengan fungsi mysqli_close(), jika kita tidak menulisnya, PHP secara otomatis akan menutup koneksi ke mysql saat halaman selesai diproses.

Dengan menggabungkan seluruh fungsi-fungsi prepared statements yang telah kita bahas, berikut adalah contoh kode programnya secara lengkap:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect(‘localhost’, ‘root’, ”, ‘universitas’);

 

// cek koneksi

if (!$link) {

die(‘Koneksi Error : ‘.mysqli_connect_errno().

‘ – ‘.mysqli_connect_error());

}

 

// buat prepared statements

$stmt = mysqli_prepare($link, “SELECT * FROM mahasiswa_phphosting WHERE nama=?”);

 

// cek query

if (!$stmt) {

die(‘Query Error : ‘.mysqli_errno($link).

‘ – ‘.mysqli_error($link));

}

 

// siapkan “data” query

$nama_mhs=”Neil Situmorang”;

 

// hubungkan “data” dengan prepared statements

mysqli_stmt_bind_param($stmt, “s”, $nama_mhs);

 

// jalankan query

mysqli_stmt_execute($stmt);

 

// ambil hasil query

$result=mysqli_stmt_get_result($stmt);

 

// tampilkan hasil query

while ($row= $result->fetch_row()) {

echo “$row[0] $row[1] $row[2] $row[3] $row[4]”;

echo “<br />”;

}

 

// tutup statements

mysqli_stmt_close($stmt);

 

// tutup koneksi

mysqli_close($link);

?>

Jika kode program di atas dijalankan, hasilnya adalah sebagai berikut:

1 099145055 Neil Situmorang 22 Medan 1.90

Kami telah membahas tentang cara penggunaan prepared statements mysql untuk menampilkan data. Pada artikel berikutnya, kami akan membahas cara menggunakan mysqli prepared statement untuk proses input data ke dalam database mysql.

You may also like...