Функция _SQLite_Escape

 ↑  ←  Описание функции


_SQLite_Escape

Экранирует строку или число при использовании как текста в SQLite запросах

#include <SQLite.au3>
_SQLite_Escape($sString)

Параметры

$sString Строка для экранирования

Возвращаемое значение

Успех:Возвращает экранированную строку
Ошибка:Возвращает пустую строку и устанавливает @error
@error:1 - Ошибка вызова 'sqlite3_mprintf' SQLite API
2 - Ошибка преобразования строки в UTF-8
3 - Ошибка чтения экранированной строки

Примечания

Экранированная строка уже обернута одинарными кавычками.
Например, "It's a fine day" будет преобразована в "'It''s a fine day'"
Для бинарных данных используйте _SQLite_Encode().
Для числовых значений, которые будут сохранены как есть, используйте обычное объединение

См. также

_SQLite_Encode

Пример

#include <SQLite.au3>
#include <SQLite.dll.au3>

_SQLite_Startup()
ConsoleWrite("Версия библиотеки SQLite = " & _SQLite_LibVersion() & @CRLF)
Local $sTestString, $aRow
For $i = 1 To 255
    $sTestString &= Chr($i)
Next
; Теперь $sTestString содержит строку, в которой 255 символов ASCII
_SQLite_Open() ; открывает базу данных в памяти
_SQLite_Exec(-1, "CREATE TABLE test (a)") ; создаёт таблицу "test"
_SQLite_Exec(-1, "INSERT INTO test VALUES (" & _SQLite_Escape($sTestString) & ")") ; вставляет значения в таблицу с экранированием
_SQLite_QuerySingleRow(-1, "SELECT a FROM test LIMIT 1", $aRow) ; запрос ранее добавленной строки
If $aRow[0] == $sTestString Then ConsoleWrite("! идентичны !" & @CRLF) ; проверяет, идентичны ли оригинал строки со строкой из базы данных
_SQLite_Shutdown()