2016-01-27 36 views
1

我想知道當UPDATE查詢報告0行匹配。我正在使用libmysql怎樣獲得MySQL拋出一個錯誤的更新沒有行匹配?

下面是我使用的代碼:

char query[300] = {0}; 
snprintf(query, 300, "UPDATE `my_table` SET name='%s' WHERE id=%d", 
     name, id); 

if (mysql_query(db, query)) { 
    printf("Error!\n"); 
} 

本質上講,我需要知道的是,是否有對id匹配。我知道我可以通過做一個選擇來檢查,但有另一種方法嗎?

+1

mysql的大部分實現都可以提供'affected_rows'。我不知道的libmysql但你應該通過閱讀文檔,如果affected_rows在某處提到的樣子。 – tkausl

回答

2

檢查mysql_affected_rows。這將返回最後一個查詢的修改行數。

但是,它可能只返回行實際修改。如果你想返回匹配的行,你必須在mysql_real_connect指定CLIENT_FOUND_ROWS。查看相同的頁面瞭解詳情。

+0

謝謝! 'mysql_affected_rows'正是我所需要的。 – Zaxter

相關問題