连接成功,但是mysql_query(&zhqy,"select * from shop");时报错,数据库存在, 
而且如果mysql_query(&zhqy,"use zhqy");可以
 [code=C/C++][
   MYSQL   zhqy;   if (0 == mysql_init(&zhqy))
    {
        fprintf(stderr,"mysql init for zhqy %s\n",mysql_error(&zhqy));
        return 1;
    }
    
    if (0 == mysql_real_connect(&zhqy,"localhost","root",NULL,"zhqy",0,NULL,0))
    {
        fprintf(stderr,"mysql connect for zhqy %s\n",mysql_error(&zhqy));
        return 1;
    }     if(0 !=mysql_query(&zhqy,"select * from shop"))
             
          fprintf(stderr,"query error: %s\n",mysql_error(&zhqy));
/code]

解决方案 »

  1.   

    返回值是false或者resouse,不是0。
    这样试试:
    if (mysql_init(&zhqy))
      

  2.   


    手册说成功是0,否则是非0啊,还有mysql_error(&zhqy)确实有错误啊
      

  3.   

    mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。
    -----------------------------------------------------------------------------------
    摘自php手册5。
      

  4.   

    不好意思,看错了,你是C++语言吧,我以为是php的了,C++不懂。