sql >> Databasteknik >  >> RDS >> Mysql

Konstigt och irriterande fel:Anrop till odefinierad funktion mysql_query()

PHP 7 har blivit av med mysql_query() eftersom det är problematiskt på många olika sätt! API:et uppmuntrar inte till god praxis, den officiella linjen är att den inte underhålls och INGA FÖRBEREDDA UTTALANDEN!?! Det är i grunden det största problemet i PHP som uppmuntrar dålig praxis som leder till sql-injektion, och det är en stor och dålig situation.

Däremot arbetar jag med äldre kodbaser, så jag måste hantera samma situation som du i vissa fall. Om du har en liten kodbas, uppdatera bara din db-anslutningsmetod. Om du har en stor kodbas rekommenderar jag det här:

  • Återställ din php-version för denna kodbas till php 5.6, den kommer att stödjas lite mer av 2016.
  • Ta dig tid att uppdatera till PDO (du kan skapa awrapper runt PDO för att göra den mindre omfattande och fortfarande tillåta förberedda frågor).
  • Ignorera mysqli. Om det tar dig 5 minuter att uppgradera från mysql_*, gör du förmodligen fel och lämnar dig själv öppen för sql-injection. Gå bara till PDO och börja använda förberedda frågor så att du kan sova på natten.
  • Om du fortfarande vill använda php 7 i mer moderna projekt, skapa en containerinstans med de äldre php 5.6-kodbaserna på den.


  1. konvertera tidszon till en annan tidszon

  2. Välj bland alla tabeller

  3. Exportera en PostgreSQL-fråga till en csv-fil med Python

  4. Lägg till IIS 7 AppPool-identiteter som SQL Server-inloggningar