Co že to?
prepared statements jsou pomalejší (každý ten příkaz znamená ping pong s mysql serverem tedy latency)
Jaký ping-pong? Víte, co jsou prepared statements? Víte, jak komunikuje knihovna v PHP s MySQL serverem? Když máte dotaz s vloženými daty, ten se pošle na server, server se podívá do cache, zjistí, že tam dotaz ještě není. Rozparsuje ho, vytvoří exekuční plán, provede a vrátí výsledek. Při použití prepared statements se dotaz s balíčkem dat pošle na server, server se podívá do cache, vytáhne z ní už hotový exekuční plán pro daný příkaz, provede a vrátí výsledek. Síťová komunikace je pořád stejná, akorát pro opakované dotazy jste serveru ušetřil parsování dotazu a sestavování exekučního plánu.
prepared statements v zásadě jen řeši obrovskou neschopnost programátorů ošetřit si apostrov (a mysql programátorů ten správný apostrof v tom textu najít)
Nikoli, prepared statements jsou už dávno základní režim, data vložená přímo do SQL příkazu je jen pomůcka určená pro rychlé testování a prototypování. Pokud si myslíte, že jediným problematickým znakem je apostrof, pak ta aplikace musí vypadat… Jinak tipnul bych si, že spousta SQL injection vznikne tak, že programátor si ošetří „apostrof“, ale pak se ukáže, že se ošetřuje dvakrát, tak jedno ošetření odstraní – jenže pro jinou větev programu bylo to odstraněné ošetření jediným ošetřením, a SQL injection je otevřené.