2017-04-11 82 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的幫助,然後執行查詢。這裏是問題的解決方案

sprintf(sql,"DELETE FROM testData WHERE id = %d",DeleteId); 
PGresult *res = PQexec(conn, sql);