gpt4 book ai didi

c++ - 在存储到 sqlite 上的记录时处理字符串中的特殊字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:20:22 25 4
gpt4 key购买 nike

在下面的代码中,我看到当我的“描述”是这样的:"' ' ",我在更新 sqlite 记录的描述时遇到问题。我如何处理 ' 字符。谢谢!

sql = wxString::Format(
"UPDATE event SET event_description='%s' WHERE id=%d",
description.c_str(),
event_id);
rc = sqlite3_exec((sqlite3 *)_theDB, sql.c_str(), NULL, 0, &sqlError);

OP 回答了他自己的问题:

check this out FAQ we need to replace the occurences of ' with '' in the string

最佳答案

将描述字符串中的所有单引号加倍是一种方法。这样您就可以避免恶意描述(参见 Bobby Tables )。

 ' ' 

变成:

 '' '' 

更重要的是,潜在危险的描述:

' WHERE 1=1 DELETE FROM Event --

变得无害:

'' WHERE 1=1 DELETE FROM Event --

另一种(更安全)的方法是使用 prepared statements .

关于c++ - 在存储到 sqlite 上的记录时处理字符串中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/691223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com