0

したがって、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();

プログラムを実行した後、それを行うことは許可されていないことがわかります。

Camera Command Line.exe の 0x75c24b32 で未処理の例外: Microsoft C++ 例外: メモリ位置 0x00dbe59c での sql::InvalidArgumentException..

これができないと言われていることは理解していますが、その理由はわかりません。

4

1 に答える 1

1

bound準備済みステートメントを使用しているため、SQL で変数を引用する必要はありません。これを行う必要があります。

pstmt = con->prepareStatement("UPDATE master SET movie=? WHERE choice='Y'");
                                                      ^^^ 
于 2013-04-16T00:49:52.873 に答える