Почему вы пытаетесь подготовиться в функции открытия сеанса? Я не верю, что функция записи вызывается более одного раза во время сеанса, поэтому подготовка ее в открытом режиме не слишком важна для вас, вы также можете сделать это при записи сеанса.
В любом случае, я считаю, что вам нужно несколько пробелов после имени таблицы и перед списком столбцов. Я думаю, что без пробелов mysql будет действовать так, как если бы вы пытались вызвать несуществующую функцию session ().
REPLACE INTO session (phpsessid, data) VALUES(?, ?)
MySQL не видит разницы между
'COUNT ()' и 'COUNT ()'
Интересно, что когда я запускаю приведенное ниже в CLI mysql, я получаю другой результат.
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)