Solusi mysqli_stmt_get_result undefined dari HOSTINGER
Sumber : email gmail balasan dari hostinger |
Jadi waktu itu saya membantu salah satu pelanggan untuk melakukan instalasi atau konfigurasi aplikasi ppdb online di hosting miliknya, dan kebetulan waktu itu hosting yang digunakannya adalah shared hosting dari Hostinger Indonesia.
Setelah proses konfigurasi dari mulai upload source code sampai import database selesai, saya mengalami masalah, masalah ini sudah pernah saya temukan pada kasus - kasus sebelumnya, yaitu masalah fungsi mysqli_stmt_get_result() yang tidak ditemukan. Fungsi tersebut digunakan karena saya menerapkan konsep prepared statement, maka salah satu cara yang digunakan untuk menampilkan result datanya adalah menggunakan fungsi get_result itu.
Berdasarkan sumber yang dibaca dari stackoverflow https://stackoverflow.com/questions/45001819/php-fatal-error-call-to-undefined-function-mysqli-stmt-get-result bahwasanya cara tersebut bisa diatasi dengan cara mengaktifkan driver mysql nd atau nd mysqli. Akhirnya saya coba setting melalui menu php yang terdapat disana, posisi disana menggunakan php versi 5.6, dan saya pun coba untuk mengaktifkan driver tersebut, tapi hasilnya mysql nd nd mysqli tidak mau aktif saat saya coba centang dan save, selalu terjadi kegagalan
Karena saya tidak mau repot akhirnya saya coba menghubungi pihak hostinger dan bertanya terakait masalah mysqli_stmt_get_result undefined, dan berikut ini adalah jawaban dari pihak hostinger terkait masalah tersebut :
Halo. Selamat pagi
Fungsi mysqli_stmt_get_result aktif pada versi PHP 5.3 atau di atasnya. Sedangkan Tidak ada untuk versi PHP 5.2 . Alternatifnya adalah menggunakan mysqli_stmt_bind_result dengan binding variabel Lebih detail Anda bisa mengikuti panduan berikut https://php.net/mysqli-stmt.bind-result.
Dalam contoh konkret Anda, ini bahkan memiliki manfaat bahwa Anda tidak perlu menetapkan anggota array ke variabel, karena Anda dapat mengikat variabel secara langsung. Detail array yang di maksud dapat di lihat di http://blog.ulf-wendel.de/2007/php-mysqli_stmt_get_result/
Sehingga pada dasarnya untuk layanan shared hosting mendukung untuk mysqli_stmt_get_result(); pada versi php 5.2 kebawah.
Salam,
Sholahuddin
Sebenarnya saya tidak mengerti maksudnya, jadi kalau analisa atau pemaparan saya salah, mohon untuk diluruskan. Penjelasan ini yang membuat saya jadi bingung :
- Pihak Hostinger berkata bahwa fungsi mysqli_stmt_get_result aktif pada PHP versi 5.3 atau diatasnya, sedangkan waktu itu saya jelas - jelas sedang menggunakan PHP versi 5.6 atau diatasnya versi 5.3 tapi fungsi tersebut tidak ditemukan
- Tapi diakhir kalimatnya mengatakan bahwa untuk shared hosting mendukung fungsi mysqli_stmt_get_result(); tersedia pada versi php 5.2 kebawah :
"Sehingga pada dasarnya untuk layanan shared hosting mendukung untuk mysqli_stmt_get_result(); pada versi php 5.2 kebawah". - Dan ini posisi hosting yang digunakan pelanggan saya memang shared hosting dan disana sayangnya memang tidak ada pilihan PHP 5.2 hanya ada PHP 5.6 sampai 7
Pemikiran saya :
Dan setelah saya coba tanya - tanya ke yang beli hostingnya memang harga yang dikeluarkan untuk layanan itu murah ( hanya 300 rb) mungkin lagi promo.
Jadi kesimpulannya mungkin itu bukan dari masalah versi PHP nya, tapi dari harga yang dikeluarkannya, jadi fungsinya tidak ada.
Solusi dari hostinger adalah dengan menggunakan bind_result(); yang posisinya saya belum pernah mencobanya, tapi gara - gara ini saya jadi mencoba untuk belajar menggunakan bind_result(); katanya lebih menguntungkan karena kita langsung bisa mengikat variabel di bind result, atau nama perdata di kolomnya tidak perlu kita definisikan didalam setiap variabel
- Pada versi aktif tersebut (5.6) saya mencoba mengaktifkan driver mysqlnd ndmysqli pun juga tidak bisa. Tapi sebenarnya bukan itu pointnya, pointnya adalah kenapa fungsi tersebut tidak jalan pada versi 5.6, padahal hostinger bilang bahwa fungsi tersebut ada pada versi 5.3 atau diatasnya
- Saya juga punya shared hosting disalah satu layanan, dan fungsi itu aktif secara normal pada versi 5.6 ataupun versi diatasnya
Dan setelah saya coba tanya - tanya ke yang beli hostingnya memang harga yang dikeluarkan untuk layanan itu murah ( hanya 300 rb) mungkin lagi promo.
Jadi kesimpulannya mungkin itu bukan dari masalah versi PHP nya, tapi dari harga yang dikeluarkannya, jadi fungsinya tidak ada.
Solusi dari hostinger adalah dengan menggunakan bind_result(); yang posisinya saya belum pernah mencobanya, tapi gara - gara ini saya jadi mencoba untuk belajar menggunakan bind_result(); katanya lebih menguntungkan karena kita langsung bisa mengikat variabel di bind result, atau nama perdata di kolomnya tidak perlu kita definisikan didalam setiap variabel
(Ahmad Zaelni / r93)
Asli roaming hehehe. Numpang nyimak yah mas
ReplyDelete