Mengapa Anda mencoba melakukan persiapan Anda dalam fungsi sesi terbuka? Saya tidak yakin fungsi tulis dipanggil lebih dari sekali selama sesi, jadi menyiapkannya di tempat terbuka tidak banyak membantu Anda, sebaiknya lakukan itu di sesi menulis.
Pokoknya saya yakin Anda memerlukan spasi putih setelah nama tabel, dan sebelum daftar kolom. Tanpa spasi, saya yakin mysql akan bertindak seolah-olah Anda sedang mencoba memanggil fungsi yang tidak ada bernama session().
REPLACE INTO session (phpsessid, data) VALUES(?, ?)
Menarik, ketika saya menjalankan di bawah ini di mysql CLI saya sepertinya mendapatkan hasil yang berbeda.
mysql> select count (*);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*)' at line 1
mysql> select count(*);
+----------+
| count(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)