User表中其中三项是UserID,UserPassword,Access,输入前两者,读出Access值,下面的部分代码
if(mysql_real_connect(&mysql,"localhost","root","qwert","mydb",3306,NULL,0))
{
QMessageBox::critical(0,tr("登入."),tr("成功登入数据库."));
char *ch_query="select UserAccess from Users where UserID=userID and UserPassword=userPassword";
if(mysql_real_query(&mysql,ch_query,79)){
MYSQL_RES *result;
result=mysql_use_result(&mysql);
MYSQL_ROW rowmysql_fetch_row(result);
while(row=mysql_fetch_row(result))
{
access=row[0];
} }
else
QMessageBox::critical(0,tr("无法登入."),tr("请确认用户名密码是否正确."));
}我错哪了??急求帮助,谢谢!!!C++mysql
if(mysql_real_connect(&mysql,"localhost","root","qwert","mydb",3306,NULL,0))
{
QMessageBox::critical(0,tr("登入."),tr("成功登入数据库."));
char *ch_query="select UserAccess from Users where UserID=userID and UserPassword=userPassword";
if(mysql_real_query(&mysql,ch_query,79)){
MYSQL_RES *result;
result=mysql_use_result(&mysql);
MYSQL_ROW rowmysql_fetch_row(result);
while(row=mysql_fetch_row(result))
{
access=row[0];
} }
else
QMessageBox::critical(0,tr("无法登入."),tr("请确认用户名密码是否正确."));
}我错哪了??急求帮助,谢谢!!!C++mysql
mysql_real_connect(a,server,user,password,database,0,NULL,0)
mysql_real_query(a, cmd, strlen(cmd))
res = mysql_store_result(a);
mysql是这么来的
MYSQL mysql;
mysql_init(&mysql);我看到百科(http://baike.baidu.com/view/8038006.htm)里mysql_real_connect()的第一个参数是要已有MYSQL结构的地址
而且我觉得mysql_real_connect()没问题,因为执行QMessageBox::critical(0,tr("登入."),tr("成功登入数据库."));弹出了对话框
主要是接下来那个if语句,不管用户id和密码有没有输对都执行else的语句
mysql_real_query()那句有什么问题??
代码:
MYSQL mysql;
mysql_init(&mysql); //数据库连接句柄 char *access;
if(mysql_real_connect(&mysql,"localhost","root","qwert","mydb",3306,NULL,0))
{
QMessageBox::critical(0,tr("登入."),tr("成功登入数据库."));
char *ch_query="select UserAccess from Users where UserID=userID and UserPassword=userPassword";
if(mysql_real_query(&mysql,ch_query,strlen(ch_query))){
MYSQL_RES *result;
result=mysql_use_result(&mysql);
MYSQL_ROW row=mysql_fetch_row(result);
while(row=mysql_fetch_row(result))
{
access=row[0];
} }
else
QMessageBox::critical(0,tr("无法登入."),tr("请确认用户名密码是否正确."));
}
con = mysql_init((MYSQL*) 0);
if ( con !=NULL && mysql_real_connect(con,dbip,dbuser,dbpasswd,dbname,3306/*TCP IP端口*/,NULL/*Unix Socket 连接类型*/,0/*运行成ODBC数据库标志*/) ) 刚百度的,不对内容的正确性负责
其实我纠结的是if(mysql_real_query(&mysql,ch_query,strlen(ch_query))){}
MYSQL * mysql; //= mysql_init((MYSQL*) 0);
mysql = mysql_init((MYSQL*) 0); //数据库连接句柄
mysql_options(mysql,MYSQL_SET_CHARSET_NAME,"gbk");
char *access;
if(mysql_real_connect(mysql,"localhost","root","qwert","mydb",0,NULL,0))
{
QMessageBox::critical(0,tr("登入."),tr("成功登入数据库."));
const char *ch_query="select UserAccess from Users where UserID=userID and UserPassword=userPassword";
if(mysql_real_query(mysql,ch_query,strlen(ch_query))){
MYSQL_RES *result;
result=mysql_use_result(mysql);
MYSQL_ROW row=mysql_fetch_row(result);
while(row=mysql_fetch_row(result))
{
access=row[0];
} }//这里有什么问题吗??
else
QMessageBox::critical(0,tr("无法登入."),tr("请确认用户名密码是否正确."));
}
{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://" + ip
+ "/information_release_system", user, password);
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}话说Qt自带一些样例程序,你自己找一下
自己个这个吧。比较详细,基本函数都写了
这位高手封装了一个类,我也学着封装了一个,经过测试,没有问题。
至于这里,应该是这句的问题:
const char *ch_query="select UserAccess from Users where UserID=userID and UserPassword=userPassword";
where里userID userPassword是C++变量,不能直接写入sql语句