MYSQL编程:MySQL based on Linux by C
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。mysqlintLoginJudge(USER_ACCOUNTreq)
{
inti=0;
char*name;
char*reqname;
char*password;
char*reqpass;
reqname=req.Name;
reqpass=req.Password;
if(!(mysql_connect(&mysql,NULL,"root","1111")))
returnFALSE;
if(mysql_select_db(&mysql,"serverdb"))
returnFALSE;
if(mysql_query(&mysql,"selectname,passwordfrommain"))
returnFALSE;
if(!(res=mysql_store_result(&mysql)))
returnFALSE;
while((row=mysql_fetch_row(res)))
{
name=row;
password=row;
if(!strcmp(name,reqname))
{
if(!strcmp(password,reqpass))
returnTRUE;
else
returnFALSE;
}
}
if(!mysql_eof(res))
returnFALSE;
mysql_free_result(res);
mysql_close(&mysql);
returnFALSE;
}
intauthority(char*name)
{
longiBackValue;
char*cDBname;
char*cDBauthority;
char*cQuename;
char*cValueOne;
char*cValueTwo;
cQuename=name;
cValueOne="1";
cValueTwo="2";
if(!(mysql_connect(&mysql,NULL,"root","1111")))
returnFALSE;
if(mysql_select_db(&mysql,"serverdb"))
returnFALSE;
if(mysql_query(&mysql,"selectname,authorityfrommain"))
returnFALSE;
if(!(res=mysql_store_result(&mysql)))
returnFALSE;
while((row=mysql_fetch_row(res)))
{
cDBname=row;
cDBauthority=row;
if(!strcmp(cDBname,cQuename))
{
if(!strcmp(cValueOne,cDBauthority))
{
iBackValue=1;
if(!strcmp(cValueTwo,cDBauthority))
iBackValue=2;
}
else
iBackValue=3;
}
}
if(!mysql_eof(res))
returnFALSE;
mysql_free_result(res);
mysql_close(&mysql);
returniBackValue;
}
要想在MySQL与其他数据库之间进行一个面面俱到的功能设置对比,并不是一件容易的MySQL学习教程。随着新软件版本的发布或一些补丁的推出。 大家注意一点。如下面的例子: 不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理? where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
页:
[1]