sql >> Databáze >  >> RDS >> Mysql

Jaké jsou vnitřnosti připraveného prohlášení?

Pokud se snažíte dělat to, o čem to vypadá, že se snažíte dělat... nezkoušejte to.

To není to, co připravené prohlášení je (nebo to alespoň není to, co by mělo být).

Váš klientský kód by se neměl pokoušet interpolovat hodnoty do řetězce dotazu za účelem vygenerování „dokončeného“ dotazu, který se odešle na server k provedení. To je recept na katastrofu, nemluvě o falešném pocitu bezpečí.

Připravené výpisy doručují výpis s ? zástupné symboly na server tak, jak je, kde server "připraví" příkaz k provedení... a poté klient odešle parametry serveru ("spojí" parametry) k provedení. Když to uděláte, server nikdy nebude zmatený v tom, „která část je SQL“ a „která část jsou data“, čímž znemožní vkládání SQL a zbytečnost úniku a dezinfekce dat.

Pokud nekomunikujete přímo s C-API, měli byste volat metody ve vaší knihovně, které vám zpřístupňují stejné funkce.




  1. Oracle:existuje nějaký logický důvod, proč nepoužívat paralelní spouštění s poddotazy v seznamu SELECT?

  2. Rozdělení Datetime na hodnotu data a času

  3. Jak VYBRAT nejnovější čtyři položky na kategorii?

  4. Aktualizace Laravel nebo vytvoření pomocí automatické přírůstkové databáze