引号内的字符串

String inside a quote

本文关键字:字符串      更新时间:2023-10-16

关于 c++连接器mysql的文档说:

sql::Connection *con;
sql::PreparedStatement  *prep_stmt
// ...
prep_stmt = con->prepareStatement("INSERT INTO test(id, label) VALUES (?, ?)");
prep_stmt->setString(2, "a");
prep_stmt->execute();

但是当我输入我的代码

  pstmt = con->prepareStatement("UPDATE master SET movie='?' WHERE choice='Y'");
  pstmt->setString(1, str);
  pstmt->execute();

它告诉我在运行程序后不允许这样做。

相机命令行。exe中0x75c24b32的未处理异常:Microsoft c++异常:sql::InvalidArgumentException at memory位置0 x00dbe59c . .

我知道它告诉我不能这样做,但我不明白为什么。

您正在使用一个准备好的语句,因此您不需要在SQL中引用bound变量,您应该这样做:

pstmt = con->prepareStatement("UPDATE master SET movie=? WHERE choice='Y'");
                                                      ^^^