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

Divoká a otravná chyba:Volání nedefinované funkce mysql_query()

PHP 7 se zbavilo mysql_query() protože je to v mnoha ohledech problematické! API nenabádá k osvědčeným postupům, oficiální linie je, že je neudržované a ŽÁDNÁ PŘIPRAVENÁ PROHLÁŠENÍ!?! Je to v podstatě největší problém v PHP, který podporuje špatné praktiky vedoucí k vkládání SQL, a to je velká špatná situace.

Nicméně pracuji se staršími kódovými bázemi, takže v některých případech musím řešit stejnou situaci jako vy. Pokud máte malou kódovou základnu, stačí aktualizovat způsob připojení db. Pokud máte velkou kódovou základnu, doporučuji zde:

  • Vraťte svou verzi php pro tuto kódovou základnu na php 5.6, bude podporována ještě o něco déle v roce 2016.
  • Udělejte si čas na aktualizaci na PDO (můžete vytvořit obal kolem PDO, aby byl méně podrobný a stále umožňoval připravené dotazy).
  • Ignorujte mysqli. Pokud vám upgrade z mysql_* zabere 5 minut, pravděpodobně to děláte špatně a necháváte se otevřít sql-injection. Stačí přejít na PDO a začít používat připravené dotazy, abyste mohli v noci spát.
  • Pokud stále chcete používat php 7 v modernějších projektech, vytvořte instanci kontejneru se staršími kódovými bázemi php 5.6.


  1. Vytváření nebo simulace dvourozměrných polí v PL/SQL

  2. Kdy se výkon Distinct a Group By liší?

  3. Klauzule ORDER BY je neplatná v pohledech, vložených funkcích, odvozených tabulkách, poddotazech a běžných tabulkových výrazech.

  4. 11 Běžné příkazy SQL se základními příklady