Ada dua masalah besar di sini. Yang pertama kecil. Baris kode ini tidak akan pernah berfungsi:
$db->bindParam(1,`account`);
$db->bindParam(1,'$dbb'); //line 17
Ini karena keduanya mencoba memanggil bindParam
sebagai string . Ini tidak mungkin. bindParam
membutuhkan referensi ke variabel. Inilah mengapa Anda mendapatkan kesalahan "tidak dapat meneruskan parameter 2 dengan referensi":Anda hanya dapat meneruskan variabel dengan referensi.
Namun, salah satu dari ini akan berhasil:
$db->bindParam(1, $dbb); // call bindParam on a variable
$db->bindValue(1, 'account'); // call bindValue on a string literal
Masalah yang lebih mendasar, bagaimanapun, adalah pemahaman Anda tentang pernyataan yang disiapkan. Ide dari pernyataan yang disiapkan adalah tidak substitusi sederhana string ke string lain. Ini pada dasarnya tentang pemisahan struktur kueri dari data. Nama tabel dianggap sebagai bagian dari struktur kueri, bukan bagian dari data. Anda perlu memasukkan nama tabel dalam kueri asli. Kode pertama Anda adalah cara untuk melakukannya.
$db = $conn->prepare( 'CREATE SCHEMA IF NOT EXISTS account');