Почему обе функции не позволяют мне? Или это просто иллюзия?
<?php echo sqlite_escape_string('Hello "World" \'\' ...'); echo "\n"; echo SQLite3::escapeString('Hello "World" \'\' ...'); echo "\n"; ?>
выходы:
Hello "World" '''' ... Hello "World" '''' ...
Вы должны использовать PDO для доступа к своей базе данных, поскольку она подготовила операторы, которые более безопасны, чем экранирование, а также быстрее.
Расширение PHP Data Objects (PDO) определяет легкий, согласованный интерфейс для доступа к базам данных на PHP. Каждый драйвер базы данных, реализующий интерфейс PDO, может выставлять функции, специфичные для базы данных, как регулярные функции расширения.
Еще одним большим преимуществом при использовании PDO является то, что вы можете легко переключаться между базами данных (MySQL vs PostGRESQL или SQLite), не меняя большую часть кода.
Краткое введение, как использовать PDO, можно прочитать в nettuts . Очень хорошее чтение / введение, если вы спросите меня!