在C中防止SQL注入

我正在编写一个C应用程序,它接受一些用户输入并执行一些数据库查询。 我很清楚SQL注入的风险,并希望防止它。

理想情况下,我会使用参数化查询,但到目前为止无法在C中找到任何具有此function的内容。 我目前正在构建我的查询:

char *query; asprintf(&query, "UPDATE SomeTable SET SomeField='%s';", userInput); 

如果我无法做到这一点,那么我必须过滤用户输入。 该过滤应如何进行? 是否足以删除所有的和?(有效输入不能包含它们)。如果是这样,在C中执行此操作的最简单方法是什么?

我相信你想使用预准备语句和参数绑定。 不要直接在查询中插入用户数据。 有关此信息,请参阅MySQL手册 。