мне было интересно об этом вопросе, и я нашел ответ в C API documentation of MySQL, говорится:
символы, закодированные в «\», "", «"», NUL (ASCII 0), «\ N», «\ r» и Control + Z (\ x1a). Строго говоря, MySQL требует только этой обратной косой черты и символ кавычки, используемый для цитирования строки в запросе, будет экранирован. mysql_real_escape_string() цитаты другие символы, чтобы сделать их легче читать в файлах журналов.
Это также объясняется в String Literals что:
Клиент MySQL обрезает строки в кавычках, содержащие нулевые символы, если они не убежали, а Control + Z могут быть приняты для END-OF-FILE на Windows, если не сбежать.
Символ NUL представляет собой конец строки на языке C, поэтому это может ложно прекратить входной аргумент клиентской программы mysql. То же самое для \x1a
, оно обозначает конец файла под Windows (попробуйте type test.txt
в командной строке с символом \x1a
в середине файла).
Главное, что администратор может пропустить важную информацию в файле журнала, если его читатель журнала не отображает данные за пределами одного из этих символов. Но кто все еще использует неустойчивую команду type
или ее эквивалент под Windows, чтобы все равно прочитать файл журнала?
Другими словами, нет никакой опасности с \n
, \r
, \0
или \x1a
в PHP, кроме потенциально делает файл журнала трудно читать.
Что касается обратной косой черты, \ «OR 1 == 1 будет преобразован в \\» OR 1 == 1, если он не бежал слишком, отменяя эффект экранирования, цитаты.
сено, спасибо большое за ответ .. У меня в значительной степени было аналогичное представление о обратной косой чертой ** "\" **. Но как насчет ** \ n, \ r, \ x00, \ x1a **? Также, пожалуйста, расскажите подробнее о двойных черточках ** - **, которые вы использовали в приведенном выше примере запроса. –
Я думаю, что вся идея связана только с одной цитатой ... Даже в вашем запросе, если вы удаляете одиночную кавычку; обратная косая черта и двойные черточки, и все остальное не будет иметь никакого эффекта. Однако я обеспокоен ** \ n, \ r, \ x00, \ x1a **, как упоминается в руководстве по php (http://nl3.php.net/manual/en/function.mysql- реальные спусковое string.php). –