无法更新mysql中的列

时间:2015-05-10 13:18:56

标签: mysql c

我尝试使用c。来更新mysql中的表 我使用了以下代码

private void initialize() {
 programButtonAnimation=new AnimationTimer(){

            private long lastUpdate = 0 ;
            @Override
            public void handle(long now) {
                    if (now - lastUpdate >= 28_000_000) {
                        showClockAnimation();
                        lastUpdate = now ;
                    }
            }
        };
 programButtonAnimation.start();
}

private void showClockAnimation(){
    String imageName = "%s_"+"%05d"+".%s";
    String picturePath="t093760/diploma/view/styles/images/pink_frames/"+String.format( imageName,"pink" ,frameCount,"png");
    programButton.setStyle("-fx-background-image:url('"+picturePath+"')");
    frameCount++;
    if(frameCount>=120){
        programButtonAnimation.stop();
        frameCount=0;
    }
}

但它没有用。
主要问题是内部比较'如果'声明。
当我尝试打印if(row[6] == 0) // 6th column contains an integer { mysql_query(con,"UPDATE users SET email_active = 1 WHERE user_id = 1"); }

的值时
row[6]

它说

  

警告:格式'%d'期望类型' int'的参数,但参数2的类型为' char *' [-Wformat =] |

因此,当我尝试printf("%d", row[6]); 时,它会起作用。
所以我尝试了%s,但它显示了类似于上述警告的警告。
我再次尝试

if(strcmp(row[6],'0')==0)

它没有打印任何东西!

那么,我哪里出错?

还有一种方法可以在if(row[6] == 0) { printf("Works!"); } 中使用变量而不是1吗?

2 个答案:

答案 0 :(得分:1)

好的,伙计,我有个主意。

  

使用strcat()个参数化语句。

首先我初始化了一个字符串char update[100]="UPDATE users SET email_active = 1 WHERE user_id = ";
然后是用户的输入

char temp[20];
gets(temp);
strcat(update , temp);
mysql_query(con,update);

它有效!

答案 1 :(得分:0)

您的“行”是一个字符串数组。你想比较其中一个,使用“strcmp”。 if(strcmp(row [6],“0”)== 0)