如何使用预准备语句从数据库中检索结果集?我不知道如何从我的代码继续,我设法得到查询和准备好的语句的变量,现在我不得不从数据库中检索。
答案 0 :(得分:3)
您不能将字段名称作为参数传递。只能像这样传递数据。条件
WHERE ?=?
-- ^
替换为Field1
和field1
的将按字面解释为
WHERE 'Field1'='field1' -- note the quotes around the values
如果要从字段名构造条件,则需要构造SQL字符串本身。例如,您可以传递
SELECT * FROM Table1 WHERE %s=?
并将其用作formatter的格式字符串,并将Field1
作为参数传递给%s
。
要非常小心不能由用户输入的字段名称:任何成为SQL字符串一部分的内容都必须来自程序或其配置文件中的常量池,以避免SQL注入攻击。