Ниже кодов взяты из одного учебника:PHP: как же одиночные кавычки и двойные кавычки работают вместе
<?php
// user input that uses SQL Injection
$name_bad = "' OR 1'";
// our MySQL query builder, however, not a very safe one
$query_bad = "SELECT * FROM customers WHERE username = '$name_bad'";
// display what the new query will look like, with injection
echo "Injection: " . $query_bad;
В передней части, она показывает:
Injection: SELECT * FROM customers WHERE username = '' OR 1''
Вопрос:
почему он показывает username = '' OR 1''
?
@David - Нет, не нужно. Библиотека 'mysql_ * 'устарела и не должна использоваться вообще и [есть более эффективные способы защиты от SQL-инъекции] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql -injection-in-php), чем экранирование. – Quentin