Дизайнът на mysql_query
функцията е такава, че трябва да внимавате да избягвате всяка част от данните, които инжектирате в нея, и ако пропуснете дори една, цялото ви приложение може да бъде унищожено от инструмент за автоматично използване на SQL уязвимости
.
И двете mysqli
и PDO поддържат заместители, които са задължителни за да гарантирате, че вашите заявки са безопасни от грешки при SQL инжектиране. Извикване на mysql_real_escape_string
във всичко е не само досадно, но и податливо на грешки и оттам възникват проблемите.
mysql
функциите са продукт от много ранните дни на PHP и са значително по-ограничени от новите обектно-ориентирани функции, предлагани и от mysqli
като опция или ЗНП по проект.
Има редица много добри причини да използвате един от тези два нови интерфейса, но най-важното е, че mysql_query
функцията е просто твърде опасна за използване в производствения код. С него винаги ще бъдете на една грешка от някои много сериозни проблеми.
Има причина да продължават да се показват копия на бази данни, пълни с пароли и номера на кредитни карти. Наличието на очевидна точка на инжектиране на SQL прави почти твърде лесно пълното поемане на сайт.