Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Seltsamer und ärgerlicher Fehler:Aufruf der undefinierten Funktion mysql_query()

PHP 7 hat mysql_query() entfernt weil es in vielerlei Hinsicht problematisch ist! Die API ermutigt nicht zu guten Praktiken, die offizielle Linie ist, dass sie nicht gepflegt wird und KEINE VORBEREITETEN AUSSAGEN!?! Es ist im Wesentlichen das größte Problem in PHP, das schlechte Praktiken fördert, die zu einer SQL-Einschleusung führen, und das ist eine große, große schlechte Situation.

Ich arbeite jedoch mit Legacy-Codebasen, daher muss ich mich in einigen Fällen mit der gleichen Situation wie Sie auseinandersetzen. Wenn Sie eine kleine Codebasis haben, aktualisieren Sie einfach Ihre DB-Verbindungsmethode. Wenn Sie eine große Codebasis haben, empfehle ich Folgendes:

  • Setzen Sie Ihre PHP-Version für diese Codebasis auf PHP 5.6 zurück, sie wird noch etwas länger im Jahr 2016 unterstützt.
  • Nehmen Sie sich Zeit, um auf PDO zu aktualisieren (Sie können einen Wrapper um PDO herum erstellen, um es weniger ausführlich zu machen und dennoch vorbereitete Abfragen zuzulassen).
  • Mysqli ignorieren. Wenn Sie 5 Minuten brauchen, um von mysql_* zu aktualisieren, machen Sie es wahrscheinlich falsch und lassen sich für sql-injection offen. Entscheiden Sie sich einfach für PDO und verwenden Sie vorbereitete Abfragen, damit Sie nachts schlafen können.
  • Wenn Sie PHP 7 immer noch in moderneren Projekten verwenden möchten, erstellen Sie eine Containerinstanz mit den älteren PHP 5.6-Legacy-Codebasen darauf.