mysql查询语句在哪里编写_mysql编写语句:更新查询
我正在嘗試使用
mysql C API執(zhí)行C程序,使用更新查詢連接到mysql并且我沒有得到任何編譯或鏈接錯誤,但是在db表中沒有更新行.
當我運行此代碼時,我在emp中更新了空值.狀態(tài)字段
#define STRING_SIZE 256
char* eStatus,myeStatus;
int myempid,empid;
int i;
for(i = 0; i < 5 ; i++){
const char* sqlQuery = "update employee_info set estatus = ? where empID = ?";
if (mysql_stmt_prepare(stmt, sqlQuery, strlen(sqlQuery))) {
fprintf(stderr, " mysql_stmt_prepare(), update failed\n");
fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
return -1;
}
memset(param, 0, sizeof(param)); /* zero the structures */
if (info.state == 2)
eStatus = "present";
else
eStatus = "absent";
empid = i;
// Init param structure
// Select
param[0].buffer_type = MYSQL_TYPE_STRING;
param[0].buffer = (void *) &eStatus;
param[0].buffer_length = STRING_SIZE;
param[0].is_null = 0;
param[0].length = &str_length;
param[1].buffer_type = MYSQL_TYPE_SHORT;
param[1].buffer = (void *) &myempID;
param[1].buffer_length = STRING_SIZE;
param[1].is_null = 0;
param[1].length = 0;
myeStatus = eStatus;
myempid = empid;
if (mysql_stmt_bind_param(stmt, param) != 0) {
fprintf(stderr, " mysql_stmt_bind_param() failed\n");
fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
return -1;
}
/* Execute the statement */
if (mysql_stmt_execute(stmt)) {
fprintf(stderr, " mysql_stmt_execute(), failed\n");
fprintf(stderr, " %s\n", mysql_stmt_error(stmt));
return -1;
}
} // end of for loop
mysql中的表模式
empid INT(11)
estatus varchar(10)
我無法弄清楚為什么狀態(tài)沒有在mysql表中更新.它是不匹配的數(shù)據(jù)類型,還是值沒有正確綁定到sqlquery?
任何線索?謝謝.
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql查询语句在哪里编写_mysql编写语句:更新查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java16位字符串压缩成8位_在8位U
- 下一篇: python mysql l链式查询_使