sql >> Database >  >> RDS >> Mysql

Bizarre en vervelende fout:oproep naar ongedefinieerde functie mysql_query()

PHP 7 is verlost van mysql_query() omdat het op verschillende manieren problematisch is! De API moedigt geen goede praktijken aan, de officiële regel is dat deze niet wordt onderhouden en GEEN OPGESTELDE VERKLARINGEN!?! Het is in wezen het grootste probleem in PHP dat slechte praktijken aanmoedigt die leiden tot sql-injectie, en dat is een grote grote slechte situatie.

Ik werk echter wel met legacy codebases, dus ik heb in sommige gevallen met dezelfde situatie te maken als jij. Als je een kleine codebase hebt, werk dan gewoon je db-verbindingsmethode bij. Als je een grote codebase hebt, raad ik je het volgende aan:

  • Breng je php-versie voor deze codebase terug naar php 5.6, deze wordt in 2016 iets langer ondersteund.
  • Neem de tijd om bij te werken naar PDO (u kunt een wrapper rond PDO maken om het minder uitgebreid te maken en toch voorbereide vragen toe te staan).
  • Negeer mysqli. Als het je 5 minuten kost om te upgraden van mysql_*, doe je het waarschijnlijk verkeerd en laat je jezelf openstaan ​​voor sql-injection. Ga gewoon voor PDO en begin voorbereide zoekopdrachten te gebruiken, zodat u 's nachts kunt slapen.
  • Als je php 7 nog steeds in modernere projecten wilt gebruiken, draai dan een containerinstantie op met de oudere php 5.6 legacy-codebases erop.


  1. Laravel Migratietabel bestaat al, maar ik wil nieuwe toevoegen, niet de oudere

  2. Hoe selecteer je de eerste rij voor elke groep in MySQL?

  3. Stuur ArrayList van Android naar php MySQL

  4. Tabellen waarvan het enige doel is het specificeren van een subset van een andere tabel