$id = $_POST['id'];
$text = $_POST['body'];
$id = SQLite3::escapeString($id);
$text = SQLite3::escapeString($text);
$query = "INSERT OR REPLACE INTO messageTable (messageId, userId, body) VALUES ('$id', '$userId', '$text')";
$db->query($query);
此处提供的答案escaping strings for SQLite3 in PHP5对我不利,因为我无法使用PDO。
当字符串具有单引号时,上面的代码总是将单引号的数量加倍。例如,I'm asking a question in 'stackoverflow'
将导致I''m asking a question in ''stackoverflow''
答案 0 :(得分:2)
'
字符是SQLite(和其他一些数据库)中'
字符的转义字符:
通过将字符串括在单引号中形成字符串常量 (&#39)。 字符串中的单引号可以通过放置两个来编码 连续单引号 - 与Pascal一样C风格逃脱使用 不支持反斜杠字符,因为它们不是标准字符 SQL。