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

Vložení $proměnné nebo $_POST hodnoty do mysql tabulky

V SQL musí být hodnoty řetězce uvedeny v uvozovkách:

VALUES ('value1', 'value2')"

Když používáte proměnné:

VALUES ($var1, $var2)");

Nejsou uvozovány… pokud nejsou uvozovky v samotných hodnotách.

Takže pokud $var1 = 'value1'; $var2 = 'value2' pak (po interpolaci proměnných ve vašem řetězci) vaše SQL vypadá takto:

VALUES (value1, value2)"

Svůj okamžitý problém můžete vyřešit přidáním uvozovek:

VALUES ('$var1', '$var2')");

ale to nevyřeší vaši závažnou bezpečnostní chybu a umožňuje vašim datům rozbít dotaz různými způsoby.

Měli byste se vyvarovat vytváření příkazů SQL sestavováním řetězců z proměnných . Tato cesta vede k bezpečnostním dírám SQL Injection. Použijte rozhraní, které podporuje vázané argumenty . Postarají se o citování a útěk za vás.



  1. Jedinečné omezení, které umožňuje prázdné hodnoty v MySQL

  2. Práce kolem zmeškaných optimalizací

  3. Existuje způsob, jak sledovat změny v databázi mysql pomocí perlu?

  4. Python Pandas to_sql, jak vytvořit tabulku s primárním klíčem?