Warning: PDOStatement::execute(): MySQL server has gone away in DatabaseStatementBase->execute()

Warning: PDOStatement::execute(): MySQL server has gone away in DatabaseStatementBase->execute()

Bagi pengguna drupal yang baru saja install xampp install ulang xampp dan migrasi drupal ke lingkungan development lokal, dan menemukan error seperti diatas, berikut solusinya. Setidaknya ini bekerja di kasus yang saya alami.

Kasus saya adalah ketika saya upgrade versi xampp, muncul error diatas ketika buka applikasi web drupal-nya.

masalahnya ada di setting mysql.

pada setting mysql, cari max_allowed_packet  dan ubah nilainya menjadi lebih tinggi. Secara default tertulis 1 M. Ubah misal menjadi 32 M.

lokasi setting mysql:

xampp/mysql/bin/my.ini

cari dan ubah menjadi:

max_allowed_packet = 32M

kemudian restart service mysql dalam xampp.

Error sudah hilang dan drupal bisa dibuka kembali.

Android Studio: Cara Menghilangkan TextView yang isinya kosong

Ada sebuah kasus dimana suatu layout dalam android yang menampilkan dua textview dalam layout tersebut. Keetika salah satu textview kosong, maka akan ada space yang tidak berguna yang kurang bagus kalau dilihat.

Garis besar algoritmanya adalah yang pertama cek string yang akan mengisi posisi textview tersebut, jika kosong atau nol, maka textview tersebut diset menjadi hilang.

Misalkan isi file xml layout nya pada bagian textview adalah sebagai berikut:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView1"/>

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView2"/>

Potongan kode file java nya:

TextView tv1 = (TextView)v.findViewById(R.id.textView1);

tv1.setText(); //set isi dari textview

if(tv1.getText().length() == 0){
   tv1.setVisibility(View.GONE);
}else{
   tv1.setVisibility(View.VISIBLE);
}

Cara ini akan menghilangkan textview yang kosong sehingga tidak ada space yang kosong di dalam layar karena tidak ada isinya.

Release aplikasi Android ke-2: Mengenal Suara Hewan

Aplikasi kedua akhirnya release juga. Aplikasi ini mungkin lebih menyasar ke lebih banyak pengguna daripada sebelumnya. Kalau sebelumnya mungkin cuma yang mempunyai minat terhadap astronomi, sedangkan aplikasi ini lebih menyasar orang umum yang memiliki anak kecil.

Aplikasi ini bernama mengenal suara hewan. Idenya berawal dari kami di rumah yang bermain tebak-tebakan sama anak yang masih berusia 2 tahun tentang suarah hewan. Kami menyebut nama hewan dan anak akan menirukan suara sesuai hewan yang disebutkan. Atau kami menirukan suara hewan, dan anak menyebutkan nama hewannya.

Aplikasi ini sangat simple. Hanya menampilkan gallery foto hewan dan ketika di sentuh, akan mengeluarkan suara sesuai nama hewan-nya.

Foto-foto dan suara saya kumpulkan dari internet yang memiliki lisensi public domain, sehingga boleh digunakan kembali dan dimodifikasi.

Berikut screenshotnya:

 

Dan kalau ada yang mau iseng nyoba, bisa diunduh aplikasinya di bawah ini:
Get it on Google Play

SendGrid: Cara Pakai API Dengan Authentication Menggunakan PHP dan cURL

SendGrid menyediakan REST API sebagai penghubung antara aplikasi kita dengan layanan yang mereka berikan. Untuk berinteraksi dengan API mereka, kita membutuhkan API KEY yang didapat dari account kita di SendGrid.

Sesuai dengan dokumentasi di website SendGrid, berikut cara panggil API nya menggunakan cURL.

curl --request POST \
  --url https://api.sendgrid.com/v3/mail/batch \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \

Contoh diatas untuk mendapatkan Batch id.

Authentication diatas menggunakan Bearer atau token berupa API KEY account kita di SendGrid.

Berikut ketika cURL digunakan pada PHP.

$url = '<url api>';
$apikey = '<api key anda>';
$content = json_encode('<array content anda>');

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json","authorization: Bearer ".$apikey));
curl_setopt($curl, CURLOPT_HTTPGET, 1); //untuk GET method

$json_response = curl_exec($curl);

curl_close($curl);

$response = json_decode($json_response, true);

 

 

Cara Panggil REST API di Client Menggunakan PHP dan cURL

POST

$url = "url yang jadi interface";    
$content = json_encode("data body yang di post dalam bentuk php array");

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

$json_response = curl_exec($curl);

curl_close($curl);

$response = json_decode($json_response, true);

GET

$url = "url yang jadi interface";    

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_HTTPGET, 1)

$json_response = curl_exec($curl);

curl_close($curl);

$response = json_decode($json_response, true);

untuk menambahkan authentikasi pada saat memanggil API menggunakan bearer atau token authentication, bisa ditambahkan di dalam komponen array sejajar dengan “Content-type”

misalnya seperti

$url = "url yang jadi interface";    

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json", "authorization: Bearer <token>"));
curl_setopt($curl, CURLOPT_HTTPGET, 1)

$json_response = curl_exec($curl);

curl_close($curl);

$response = json_decode($json_response, true);