【发布时间】:2018-04-25 07:51:38
【问题描述】:
如何在 C 中的字符串中设置变量占位符?
例如,从变量 int id = 1234 设置 ID。
sql = "INSERT INTO REV_ENTITY (ID, NAME, AGE, ADDRESS, SALARY)" \
"VALUES (99, 'John Doe', 25, 'Rich-Mond ', 65000.00 );";
更新
我想要一个包含变量值的最终字符串。
按照建议,这不起作用:
sql = "INSERT INTO REV_ENTITY (ID,NAME,AGE,ADDRESS,SALARY)" \
"VALUES (%d, 'REV', 25, 'Rich-Mond ', 65000.00 );";
rc = sqlite3_exec(db, printf(sql, 999), callback, 0, &zErrMsg);
我想要在 Java 中这样的东西:
String string = String.format("A string %s", aVariable);
【问题讨论】:
-
snprintf?或者使用特定于数据库的 API 变量绑定(几乎所有数据库 API 都有)? -
也许您想查看
printf及其兄弟。 -
看看SQLite prepared statements。准备一个语句然后绑定参数。在运行时构建自己的 sql 是一个坏主意,可能会导致 SQL 注入漏洞。
-
可能与this question重复。
-
不完全是(关于 mysql)。之前使用过 sqlite 的人不能在这里写一个 good 答案吗? ;)