#include <winsock.h>
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>int main (int agrc,char * argc[])
{
MYSQL mysql,*sock;
char const *pszDomain = "wissip.com";
char const *pszUsername = "Kerry1";
char const *pszPassword = "123456";
unsigned int uUserId = 2;
char const *pszRealName = "flaght";
char szSql[256] ="";  mysql_init(&mysql);  if (!(sock = mysql_real_connect(&mysql,"localhost","root","123456","Mail",0,NULL,0)))
 {
 fprintf(stderr,"the database initialize failed :%s",mysql_error(&mysql));
 }
     
    sprintf(szSql,"%d,\'%s\',\'%s\',\'%s\',\'%s\',\'U\'",uUserId,pszDomain,pszUsername,pszPassword,pszRealName);//id,域名,用户名,密码,真名,属性
     printf("%s",szSql);  if (mysql_query(sock,"insert into mailusers(Userid,Domain,Username,Password,Realname,Att) VALUES(szsql)"))
{
  fprintf(stderr,"\nCreate User is Failed:%s",mysql_error(sock));
}

return (0);
}这是我的演示程序 但是运行时候就出出现:Create User is Failed:Column count doesn't match value count at row 1;
这是怎么回事?

解决方案 »

  1.   

    下面的代码可以通过sprintf(szSql,
        "insert into mailusers (userid,domain,username,password,realname,att) "
        "VALUES(%d,\'%s\',\'%s\',\'%s\',\'%s\',\'U\');",
        uUserId,pszDomain,pszUsername,pszPassword,pszRealName);
      fprintf(stderr, "\n%s\n",szSql);   if ( mysql_query(sock, szSql) ) { 
        fprintf(stderr,"\nCreate User is Failed:%s",mysql_error(sock)); 
      } 1, mysql_query() 函数中szSql要带";"
    2. sql语句最好写成一条.