Hvorfor prøver du at forberede dig i sessionsåbningsfunktionen? Jeg tror ikke, at skrivefunktionen kaldes mere end én gang i løbet af en session, så det gør ikke meget for dig at forberede den i det fri, du kan lige så godt gøre det i din sessionsskrivning.
Jeg tror i hvert fald, at du har brug for et mellemrum efter tabelnavnet og før kolonnelisten. Uden mellemrummet tror jeg, at mysql ville fungere, som om du forsøgte at kalde den ikke-eksisterende funktion ved navn session().
REPLACE INTO session (phpsessid, data) VALUES(?, ?)
Interessant, når jeg kører nedenstående i mysql CLI, ser det ud til, at jeg får et andet resultat.
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)