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

Kdy použít dotazy připravené pro CHOP. chyba mysql_real_escape

Chybu, kterou se vám zobrazuje, vyřešíte pomocí mysql_real_escape_string() vyžaduje otevřené připojení pomocí mysql_connect() . Protože žádné nemáte, pokouší se o připojení a selhává (pomocí uživatelského jména matthew , zatímco vaše PDO se připojuje k root ). Navíc nemůžete (nebo neměli byste ) kombinovat mysql_real_escape_string() a PDO - jsou to různé knihovny.

Pokud jde o „kdy“ použít připravené příkazy, obecným pravidlem je vždy, když hodnoty nejsou pevně zakódovány. Váš příklad LIKE '%hotmail%' není třeba se připravovat, je pevně zakódovaný a nikdy se nezmění (samozřejmě pokud jej ručně neaktualizujete).

Pokud máte dotaz, který bude přijímat proměnnou jakéhokoli druhu, ať už jde o data z $_POST nebo $_GET , nebo proměnnou, kterou vývojář vytvořil 10 řádků před dotazem, měli byste použít připravený příkaz (nebo jej alespoň escape, podívejte se na PDO::quote ).



  1. chtěl získat všechna data ve výsledku mysql

  2. V PL/SQL vezměte tabulku jako parametr, vyfiltrujte ji a vraťte ji

  3. MySQL rozdíl mezi e a é (e akutní) - UNIKÁTNÍ index

  4. Jak zakázat omezení cizího klíče v SQL Server (příklady T-SQL)