Sie können keine Platzhalter in vorbereiteten Anweisungen für Bezeichner (Spalten-/Tabellen-/Datenbank-/Funktionsnamen usw.) verwenden. Sie können sie nur für Werte verwenden.
CREATE TABLE noteshareproject.:title
// ^^^^^^ this will not work
Sie müssen $title
manuell bereinigen es kann also direkt in der Zeichenfolge verwendet werden, wenn Sie dies tun möchten.
Beachten Sie auch, dass eine DDL
Anweisung wie CREATE TABLE
kann nicht vorbereitet werden, daher macht es keinen Sinn, prepare()
zu verwenden . Sie können auch einfach query()
verwenden
oder exec()
.
Ich frage mich auch, ob die Tatsache, dass Sie dies überhaupt tun möchten, ein Indikator für ein schlechtes Datenbankdesign ist - es ist unwahrscheinlich, dass die Anforderung mehrerer Tabellen mit identischer Struktur eine geeignete Methode zum Speichern Ihrer Informationen ist, obwohl Sie nicht mehr über Ihre wissen Anwendung kann man nicht mit Sicherheit sagen.