Mysql
 sql >> база данни >  >> RDS >> Mysql

Чудна и досадна грешка:Извикване на недефинирана функция mysql_query()

PHP 7 се отърва от mysql_query() защото е проблематично по различни начини! Приложният програмен интерфейс (API) не насърчава добрите практики, официалната линия е, че не се поддържа и НЯМА ПОДГОТВЕНИ ИЗЯВЛЕНИЯ!?! По същество това е най-големият проблем в PHP, който насърчава лошите практики, водещи до sql инжектиране, и това е голяма голяма лоша ситуация.

Въпреки това работя с наследени кодови бази, така че трябва да се справя със същата ситуация като вас в някои случаи. Ако имате малка кодова база, просто актуализирайте своя метод за свързване с db. Ако имате голяма кодова база, ето какво препоръчвам:

  • Върнете вашата php версия за тази кодова база до php 5.6, тя ще се поддържа още малко през 2016 г.
  • Отделете време, за да актуализирате до PDO (можете да създадете awrapper около PDO, за да го направите по-малко подробен и все пак да позволявате подготвени заявки).
  • Игнорирайте mysqli. Ако ви отнеме 5 минути, за да надстроите от mysql_*, вероятно го правите погрешно и се оставяте отворени за sql-инжекция. Просто отидете на PDO и започнете да използвате подготвени заявки, за да можете да спите през нощта.
  • Ако все пак искате да използвате php 7 в по-модерни проекти, завъртете екземпляр на контейнер с по-старите наследени кодови бази на php 5.6 в него.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъп до данни от сървлет

  2. Zend_Db подреждане по поле Стойност

  3. LOAD DATA LOCAL INFILE е забранено в... PHP

  4. PHP и MySQL най-добрият начин за броене на показвания на страници за динамични страници

  5. SELECT, където стойността на реда съдържа низ MySQL