Proč se snažíte připravit ve funkci otevření relace? Nevěřím, že funkce write je volána více než jednou během relace, takže její příprava na otevřeném pro vás moc nepomůže, můžete to také udělat ve své relaci write.
Každopádně věřím, že za názvem tabulky a před seznamem sloupců potřebujete nějaké mezery. Domnívám se, že bez mezery by se mysql choval, jako byste se snažili volat neexistující funkci s názvem session().
REPLACE INTO session (phpsessid, data) VALUES(?, ?)
Zajímavé, když spustím níže uvedené v mysql CLI, zdá se, že dostanu jiný výsledek.
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)