2

我正在尝试使用 QsqlQuery 插入一个包含 '%' 的字符串,但我总是收到 QSqlError::TransactionError 类型的错误消息

"near "%": syntax error Unable to execute statement"

我已经尝试了几种方法来逃避“%”,但我仍然收到该错误消息。请参阅下面的代码片段。

query.exec(QString("INSERT INTO my_table (name, address) VALUES (\"%1\", \"%2\")")
                  .arg("Harry", "#302%%1,..."));

代替“%%”,我尝试了“\%”、“\%”,但它仍然没有工作,并且我收到了相同的错误消息。

4

1 回答 1

2

在 SQL 中,字符串用 分隔',而不是"

无论如何,您应该使用参数:

query.prepare("INSERT INTO my_table (name, address) VALUES (?, ?)");
query.addBindValue("Harry");
query.addBindValue("#302%%1,...");
query.exec();
于 2013-05-03T07:12:42.377 回答