Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQLi vorbereitete Anweisungen und REPLACE INTO

Warum versuchen Sie, Ihre Vorbereitung in der Sitzungsöffnungsfunktion durchzuführen? Ich glaube nicht, dass die Write-Funktion mehr als einmal während einer Session aufgerufen wird, daher bringt es Ihnen nicht viel, sie offen vorzubereiten, Sie können das genauso gut in Ihrer Session schreiben.

Wie auch immer, ich glaube, Sie brauchen einige Leerzeichen nach dem Tabellennamen und vor der Spaltenliste. Ohne die Leerzeichen würde sich mysql meiner Meinung nach so verhalten, als ob Sie versuchen würden, die nicht vorhandene Funktion namens session() aufzurufen.

REPLACE INTO session (phpsessid, data) VALUES(?, ?)

Interessanterweise erhalte ich anscheinend ein anderes Ergebnis, wenn ich das Folgende in der mysql-CLI ausführe.

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)