因此, 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();

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

相机命令行Line.exe中0x75c24b32处未处理的异常:Microsoft C ++异常:内存位置0x00dbe59c处的sql :: InvalidArgumentException。

我知道这告诉我无法执行此操作,但我不知道为什么。

===============>>#1 票数:1 已采纳

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

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

  ask by Tay Moore translate from so

未解决问题?本站智能推荐: