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

Zabránění vkládání SQL v dynamickém SQL

Ahahah, to je prostě fantastické!
Konečně se mi podařilo pochopit co myslí ten chlap pod svým "dynamickým sql". Není divu, protože je dokonale maskovaný a na první i druhý pohled vypadá jako obyčejné SQL!

Zde je odpověď:

Nedělejte to. Nikdy.

Vaše představa "dynamického" SQL je v podstatě špatná. Nikdo to takto nedělá.

Neznám váš konkrétní úkol, ale vaše řešení je zřejmě špatné. A určitě existuje rozumný způsob, jak to udělat. Stačí dodržovat tato jednoduchá pravidla:

  • zbavte se meta_table
  • zbavte se SQL dotazů uložených v databázi
  • zapisujte (nebo sestavujte) všechny své dotazy ve své aplikaci pouze ze dvou zdrojů:
    • pevně zakódovaný SQL, předem napsaný ve vašem kódu
    • připravené příkazy pro všechny proměnné části

a mějte všechny své SQL dokonale v bezpečí




  1. sp_add_schedule vs sp_add_jobschedule v SQL Server:Jaký je rozdíl?

  2. Jak uniknout vyhrazenému slovu v Oracle?

  3. Jak zjistit, kdy byla v Oracle vytvořena konkrétní tabulka?

  4. WordPress – Zákulisí, část 1