sql >> Database teknologi >  >> RDS >> Mysql

Wierd og irriterende fejl:Kald til udefineret funktion mysql_query()

PHP 7 er sluppet af med mysql_query() fordi det er problematisk på mange forskellige måder! API'et tilskynder ikke til god praksis, den officielle linje er, at den ikke vedligeholdes, og INGEN FORBEREDTE UDTALELSER!?! Det er i bund og grund det største problem i PHP, der tilskynder til dårlig praksis, der fører til sql-injektion, og det er en stor, stor dårlig situation.

Jeg arbejder dog med ældre kodebaser, så jeg er nødt til at håndtere den samme situation som dig i nogle tilfælde. Hvis du har en lille kodebase, skal du bare opdatere din db-forbindelsesmetode. Hvis du har en stor kodebase, er her, hvad jeg anbefaler:

  • Rul din php-version for denne kodebase tilbage til php 5.6, den vil blive understøttet i lidt mere af 2016.
  • Tag dig god tid til at opdatere til PDO (du kan oprette awrapper omkring PDO for at gøre den mindre udførlig og stadig tillade forberedte forespørgsler).
  • Ignorer mysqli. Hvis det tager dig 5 minutter at opgradere fra mysql_*, gør du det sandsynligvis forkert og efterlader dig selv åben for sql-injection. Bare gå efter PDO og begynd at bruge forberedte forespørgsler, så du kan sove om natten.
  • Hvis du stadig ønsker at bruge php 7 i mere moderne projekter, kan du oprette en containerinstans med de ældre php 5.6 legacy-kodebaser på den.


  1. Hvordan rettes dårligt formateret JSON i PHP?

  2. Hvordan opretter man forbindelse til Cloud SQL MySQL-database fra App Engine?

  3. Kopiering af MySQL-database til en anden maskine

  4. Kan jeg fortryde en transaktion, jeg allerede har begået? (tab af data)