2017-04-11 10 views
0

私は自分のIDを取得していますが、そのIDをデータベースから削除したいと思います。私はpostgresqlを使用しています。クエリは実行されていません。 id = 5のようなハードコード値を与えると、それは実行されますが、id = DeleteIdのようなユーザーの値を与えると実行されません。ここに関数があります:C++で指定したIDでPQexecで削除

void DeleteValue(PGconn *conn, int DeleteId) 
     { 

     PGresult *res = PQexec(conn, "DELETE FROM testData where ID = DeleteId"); 

     if (PQresultStatus(res) != PGRES_COMMAND_OK) 
     { 
      cout << "Delete testData record failed." << endl; 
      PQclear(res); 
      CloseConn(conn); 
     } 
      cout << "\nDelete testData record - OK\n"; 
      PQclear(res); 
     } 
+0

クエリに「DeleteId」を渡しているようではありません。クエリ文字列をid:http://stackoverflow.com/questions/191757/how-to-concatenate-a-stdstring-and-an-intに連結するか、準備されたステートメントを使用する必要があります。 –

+0

私もそれを試みましたが、それは動作しませんでした –

+0

あなたは文字列の連結であなたの試行を見せることができますか? –

答えて

0

sprintfの助けを借りて私自身のproblem.firstを連結してから、クエリを実行してください。ここに問題の解決方法があります。

sprintf(sql,"DELETE FROM testData WHERE id = %d",DeleteId); 
PGresult *res = PQexec(conn, sql); 
関連する問題