Du kan inte använda platshållare i förberedda satser för identifierare (kolumn/tabell/databas/funktionsnamn etc). Du kan bara använda dem för värden.
CREATE TABLE noteshareproject.:title
// ^^^^^^ this will not work
Du måste sanera $title
manuellt så det kan användas direkt i strängen om du vill göra detta.
Observera också att en DDL
sats som CREATE TABLE
kan inte förberedas, så det är ingen idé att använda prepare()
. Du kan lika gärna bara använda query()
eller exec()
.
Jag undrar också om det faktum att du vill göra detta överhuvudtaget är en indikator på dålig databasdesign - det är osannolikt att ett krav på flera tabeller med identisk struktur är ett korrekt sätt att lagra din information, men utan att veta mer om din tillämpning är det omöjligt att säga säkert.