1143 lines
29 KiB
C
1143 lines
29 KiB
C
![]() |
#include "longzoro/version.h"
|
|||
|
|
|||
|
#ifdef _SASQL//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#include "longzoro/sasql.h"
|
|||
|
#include "char_base.h"
|
|||
|
#include "configfile.h"
|
|||
|
#include <mysql/mysql.h>
|
|||
|
#include <stdio.h>
|
|||
|
#include <string.h>
|
|||
|
MYSQL mysql;
|
|||
|
MYSQL_RES *mysql_result;
|
|||
|
MYSQL_ROW mysql_row;
|
|||
|
MYSQL_FIELD *fields;
|
|||
|
|
|||
|
typedef struct tagSQLConfig
|
|||
|
{
|
|||
|
char sql_IP[32];
|
|||
|
|
|||
|
int sql_Port;
|
|||
|
|
|||
|
char sql_Port1[16];
|
|||
|
|
|||
|
char sql_ID[16];
|
|||
|
|
|||
|
char sql_PS[32];
|
|||
|
|
|||
|
char sql_DataBase[16];
|
|||
|
|
|||
|
char sql_Table[16];
|
|||
|
|
|||
|
char sql_LOCK[16];
|
|||
|
|
|||
|
char sql_NAME[16];
|
|||
|
|
|||
|
char sql_PASS[16];
|
|||
|
}SQLConfig;
|
|||
|
|
|||
|
SQLConfig sqlconfig;
|
|||
|
|
|||
|
int AutoReg;
|
|||
|
int openbackground;
|
|||
|
|
|||
|
static int readSqlConfig( char *path )
|
|||
|
{
|
|||
|
char buf[255];
|
|||
|
FILE *fp;
|
|||
|
|
|||
|
fp = fopen( path , "r" );
|
|||
|
if( fp == NULL ){ return -2; }
|
|||
|
|
|||
|
while( fgets( buf , sizeof( buf ) , fp )){
|
|||
|
char command[255];
|
|||
|
char param[255];
|
|||
|
chop(buf);
|
|||
|
|
|||
|
easyGetTokenFromString( buf , 1 , command , sizeof( command ));
|
|||
|
easyGetTokenFromString( buf , 2 , param , sizeof( param ));
|
|||
|
|
|||
|
if( strcmp( command , "sql_IP" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_IP , param ) ;
|
|||
|
snprintf( sqlconfig.sql_IP , sizeof( sqlconfig.sql_IP) , param );
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD> %s\n",sqlconfig.sql_IP);
|
|||
|
} else if( strcmp( command , "sql_Port" ) == 0 ){
|
|||
|
sqlconfig.sql_Port = atoi( param );
|
|||
|
snprintf( sqlconfig.sql_Port1 , sizeof( sqlconfig.sql_Port1) , param );
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD>˿ڣ<EFBFBD> %d\n",sqlconfig.sql_Port);
|
|||
|
} else if( strcmp( command , "sql_ID" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_ID , param ) ;
|
|||
|
snprintf( sqlconfig.sql_ID , sizeof( sqlconfig.sql_ID) , param );
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD> %s\n",sqlconfig.sql_ID);
|
|||
|
} else if( strcmp( command , "sql_PS" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_PS , param ) ;
|
|||
|
snprintf( sqlconfig.sql_PS , sizeof( sqlconfig.sql_PS) , param );
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺 %s\n",sqlconfig.sql_PS);
|
|||
|
} else if( strcmp( command , "sql_DataBase" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_DataBase , param ) ;
|
|||
|
snprintf( sqlconfig.sql_DataBase , sizeof( sqlconfig.sql_DataBase) , param );
|
|||
|
printf("<EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n",sqlconfig.sql_DataBase);
|
|||
|
} else if( strcmp( command , "sql_Table" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_Table , param ) ;
|
|||
|
snprintf( sqlconfig.sql_Table , sizeof( sqlconfig.sql_Table) , param );
|
|||
|
printf("<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s\n",sqlconfig.sql_Table);
|
|||
|
} else if( strcmp( command , "sql_NAME" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_NAME , param ) ;
|
|||
|
snprintf( sqlconfig.sql_NAME , sizeof( sqlconfig.sql_NAME) , param );
|
|||
|
printf("<EFBFBD>˺<EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> %s\n",sqlconfig.sql_NAME);
|
|||
|
} else if( strcmp( command , "sql_PASS" ) == 0 ){
|
|||
|
strcmp( sqlconfig.sql_PASS , param ) ;
|
|||
|
snprintf( sqlconfig.sql_PASS , sizeof( sqlconfig.sql_PASS) , param );
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> %s\n",sqlconfig.sql_PASS);
|
|||
|
}
|
|||
|
}
|
|||
|
fclose(fp);
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
BOOL sasql_init( void )
|
|||
|
{
|
|||
|
if((mysql_init(&mysql) == NULL) & readSqlConfig("sql.cf"))
|
|||
|
{
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
exit(1);
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
if( !mysql_real_connect( &mysql,
|
|||
|
sqlconfig.sql_IP,
|
|||
|
sqlconfig.sql_ID,//<2F>ʺ<EFBFBD>
|
|||
|
sqlconfig.sql_PS,//<2F><><EFBFBD><EFBFBD>
|
|||
|
sqlconfig.sql_DataBase,//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
|||
|
sqlconfig.sql_Port,
|
|||
|
NULL,
|
|||
|
0 ) )
|
|||
|
{
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
mysql_query(&mysql,"set names 'gbk'");
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_mysql_query( char *sqlstr )
|
|||
|
{
|
|||
|
mysql_query(&mysql,"set names 'gbk'");
|
|||
|
return mysql_query(&mysql,sqlstr);
|
|||
|
}
|
|||
|
|
|||
|
void sasql_close( void )
|
|||
|
{
|
|||
|
mysql_close( &mysql );
|
|||
|
}
|
|||
|
|
|||
|
BOOL sasql_ckeckStrint( char *str )
|
|||
|
{
|
|||
|
int i;
|
|||
|
for(i=0;i<strlen(str);i++){
|
|||
|
if((str[i] < 'a' || str[i] > 'z') && (str[i] < 'A' || str[i] > 'Z') && (str[i] < '0' || str[i] > '9') && (str[i] != '.')){
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getVipPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select VipPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setVipPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set VipPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
//printf("<22>û<EFBFBD>%s<><73>ǰ<EFBFBD>ػر<D8BB>%d<><64>\n",id,point);
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getVipPointForCdkey( char *id )
|
|||
|
{
|
|||
|
if(sasql_ckeckStrint(id) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>%s\n",id);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select VipPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setVipPointForCdkey( char *id, int point )
|
|||
|
{
|
|||
|
if(sasql_ckeckStrint(id) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>%s\n",id);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"update %s set VipPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
//printf("<22>û<EFBFBD>%s<><73>ǰ<EFBFBD>ػر<D8BB>%d<><64>\n",id,point);
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
int sasql_getPayPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select PayPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setPayPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set PayPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
//printf("<22>û<EFBFBD>%s<><73>ǰ<EFBFBD>ػر<D8BB>%d<><64>\n",id,point);
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#ifdef _GAMBLE_POINT
|
|||
|
int sasql_getGamblePoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select GamblePoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setGamblePoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set GamblePoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
#ifdef _TRIAL_POINT
|
|||
|
int sasql_getTrialPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select TrialPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setTrialPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set TrialPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
#ifdef _GLORY_POINT
|
|||
|
int sasql_getGloryPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select GloryPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setGloryPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set GloryPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
int sasql_getPayPointForCdkey( char *id )
|
|||
|
{
|
|||
|
if(sasql_ckeckStrint(id) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>%s\n",id);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select PayPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if (mysql_row!=NULL) {
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>...");
|
|||
|
sasql_close();
|
|||
|
sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setPayPointForCdkey( char *id, int point )
|
|||
|
{
|
|||
|
if(sasql_ckeckStrint(id) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>%s\n",id);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"update %s set PayPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
//printf("<22>û<EFBFBD>%s<><73>ǰ<EFBFBD>ػر<D8BB>%d<><64>\n",id,point);
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#ifdef _PAUCTION_MAN
|
|||
|
BOOL sasql_addPauctionInfo( char *cdkey, char *name, char *effect, int cost, int type, char *info, char *string )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
sprintf(sqlstr,"INSERT INTO `PauctionInfo` ( `cdkey` , `name` , `effect` , `cost` , `type` , `info` , `string` , `day` ) "
|
|||
|
"VALUES ( '%s', '%s', '%s', %d, %d, '%s', '%s', NOW())",
|
|||
|
cdkey, name, effect, cost, type, info, string );
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
printf("<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getPauctionList( char *List, int start, int type, char *cdkey )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
char tmp[256];
|
|||
|
char buf[256];
|
|||
|
int num_row=0;
|
|||
|
if(type == 0){
|
|||
|
if(strlen(cdkey)>0){
|
|||
|
sprintf(sqlstr, "select `id` , `cdkey` , `effect` from `PauctionInfo` where `cdkey` = BINARY'%s'", cdkey);
|
|||
|
}else{
|
|||
|
sprintf(sqlstr, "select `id` , `cdkey` , `effect` from `PauctionInfo` where TO_DAYS( NOW( ) ) - TO_DAYS( day ) < 30");
|
|||
|
}
|
|||
|
}else{
|
|||
|
sprintf(sqlstr, "select `id` , `cdkey` , `effect` from `PauctionInfo` where `type` = %d AND TO_DAYS( NOW( ) ) - TO_DAYS( day ) < 30", type);
|
|||
|
}
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int line = 0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row > 0){
|
|||
|
while((mysql_row = mysql_fetch_row(mysql_result))){
|
|||
|
if(line >=start){
|
|||
|
sprintf(tmp, "%s|%s|%s", mysql_row[0], mysql_row[1], mysql_row[2]);
|
|||
|
strcat(List, makeEscapeString(tmp, buf, sizeof( buf)));
|
|||
|
strcat(List, "|");
|
|||
|
|
|||
|
if(line > start + 10)break;
|
|||
|
}
|
|||
|
line ++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return num_row;
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
BOOL sasql_getPauctionSurvey( char *token, int id )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
char buf[1024];
|
|||
|
sprintf(sqlstr, "select `id` , `name` , `effect`, `cost`, `type`, `info` from `PauctionInfo` where `id` = %d AND TO_DAYS( NOW( ) ) - TO_DAYS( day ) < 30", id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row > 0){
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);
|
|||
|
sprintf(token, "%s|%s|%s|%s|%s|%s", mysql_row[0], mysql_row[1], mysql_row[2],mysql_row[3], mysql_row[4], makeEscapeString(mysql_row[5], buf, sizeof( buf) ));
|
|||
|
}
|
|||
|
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getMyPauction( char *token, int id, char *cdkey )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
|
|||
|
if(strlen(cdkey)>0){
|
|||
|
sprintf(sqlstr, "select `string` ,`type` from `PauctionInfo` where `id` = %d AND `cdkey` = BINARY'%s'", id, cdkey);
|
|||
|
}else{
|
|||
|
sprintf(sqlstr, "select `string` ,`type` from `PauctionInfo` where `id` = %d ", id);
|
|||
|
}
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row > 0){
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);
|
|||
|
sprintf(token, "%s", mysql_row[0]);
|
|||
|
}
|
|||
|
|
|||
|
return atoi(mysql_row[1]);
|
|||
|
}
|
|||
|
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_PauctionOK( int id, char *cdkey )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
sprintf(sqlstr, "select `cdkey`, `cost` from `PauctionInfo` where `id` = %d", id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row > 0){
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);
|
|||
|
char tocdkey[64];
|
|||
|
sprintf(tocdkey, "%s", mysql_row[0]);
|
|||
|
int cost = atoi(mysql_row[1]);
|
|||
|
sprintf(sqlstr, "select * from `%s` where %s = BINARY'%s' AND VipPoint>%d", sqlconfig.sql_Table, sqlconfig.sql_NAME, cdkey, cost);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row > 0){
|
|||
|
sprintf(sqlstr,"update %s set VipPoint=VipPoint + %d where %s=BINARY'%s' "
|
|||
|
, sqlconfig.sql_Table, cost, sqlconfig.sql_NAME, tocdkey);
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
sprintf(sqlstr,"update %s set VipPoint=VipPoint - %d where %s=BINARY'%s' "
|
|||
|
, sqlconfig.sql_Table, cost, sqlconfig.sql_NAME, cdkey);
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
}else{
|
|||
|
return -2;
|
|||
|
}
|
|||
|
}
|
|||
|
}else{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
BOOL sasql_delPauctionBuy( int id, char *cdkey )
|
|||
|
{
|
|||
|
char sqlstr[1024];
|
|||
|
|
|||
|
if(strlen(cdkey)>0){
|
|||
|
sprintf(sqlstr, "delete from `PauctionInfo` where `id` = %d AND `cdkey` = BINARY'%s'", id, cdkey);
|
|||
|
}else{
|
|||
|
sprintf(sqlstr, "delete from `PauctionInfo` where `id` = %d", id);
|
|||
|
}
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
#endif
|
|||
|
#ifdef _JZ_NEWSCRIPT_LUA
|
|||
|
int sasql_vippoint( char *ID, int point, int flag )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
// print("\NVIPpoint1=%d\n",point);
|
|||
|
if(strstr(ID,"'")!=NULL) return -1;
|
|||
|
sprintf(sqlstr,"select `VipPoint` from `%s` where `%s`=BINARY'%s'",sqlconfig.sql_Table,sqlconfig.sql_NAME,ID);
|
|||
|
// printf("22222222:%s\n",sqlstr);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
if(flag==0){
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
if(flag==520){
|
|||
|
sprintf(sqlstr,"update `%s` set `VipPoint`=%d where `%s`=BINARY'%s'", sqlconfig.sql_Table, point,sqlconfig.sql_NAME, ID);
|
|||
|
}else{
|
|||
|
point+=atoi(mysql_row[0]);
|
|||
|
sprintf(sqlstr,"update `%s` set `VipPoint`=%d where `%s`=BINARY'%s'", sqlconfig.sql_Table, point,sqlconfig.sql_NAME, ID);
|
|||
|
}
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}else{
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}else{
|
|||
|
//mysql_free_result(mysql_result);
|
|||
|
}
|
|||
|
}
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>-- %s\n",sqlstr);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_ampoint( char *ID, int point, int flag )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
mj_sprintf(sqlstr,"select `AmPoint` from `%s` where `%s`=BINARY'%s'",sqlconfig.sql_Table,sqlconfig.sql_NAME,ID);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
if(flag==0){
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
point+=atoi(mysql_row[0]);
|
|||
|
mj_sprintf(sqlstr,"update `%s` set `AmPoint`=%d where `%s`=BINARY'%s'", sqlconfig.sql_Table, point,sqlconfig.sql_NAME, ID);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}else{
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}else{
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
}
|
|||
|
}
|
|||
|
print("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n",ID);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_rmbpoint( char *ID, int point, int flag )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
mj_sprintf(sqlstr,"select `RMBPOINT` from `%s` where `%s`=BINARY'%s'",sqlconfig.sql_Table,sqlconfig.sql_NAME,ID);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
if(flag==0){
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
point+=atoi(mysql_row[0]);
|
|||
|
mj_sprintf(sqlstr,"update `%s` set `RMBPOINT`=%d where `%s`=BINARY'%s'", sqlconfig.sql_Table, point,sqlconfig.sql_NAME, ID);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}else{
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}else{
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
}
|
|||
|
}
|
|||
|
print("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%sRMBʧ<42>ܣ<EFBFBD>\n",ID);
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
#ifdef _MO_LNS_MYSQLSUOXU
|
|||
|
|
|||
|
struct youx{
|
|||
|
int result;
|
|||
|
int flg;
|
|||
|
int errnono;
|
|||
|
char* errstr;
|
|||
|
int fieldCount;
|
|||
|
int rowCount;
|
|||
|
int rowAt;
|
|||
|
}retlua;
|
|||
|
|
|||
|
void sasql_LUASQLAdv(char* sqlstr,char* filepath,char* function,int npcindex ,int charaindex,char* msg,int flg)
|
|||
|
{
|
|||
|
char* data = sasql_LuaAdv_QueryR(sqlstr,flg);
|
|||
|
NPC_Lua_SQLPushAdvCallBack(retlua.result,retlua.flg,retlua.errnono,retlua.errstr,retlua.fieldCount ,retlua.rowCount ,retlua.rowAt, data,filepath,function,npcindex,charaindex,msg );
|
|||
|
}
|
|||
|
char* sasql_LuaAdv_QueryR(char *sqlstr,int flg)
|
|||
|
{
|
|||
|
int rowAtt = 0;
|
|||
|
static char buff[1024] = "";
|
|||
|
snprintf(buff,1024, "");
|
|||
|
buff[1023]='\0';
|
|||
|
/*<2A><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>*/
|
|||
|
retlua.result = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ERROR
|
|||
|
retlua.flg = flg;//<2F><><EFBFBD><EFBFBD>
|
|||
|
retlua.errnono = 0;//MYSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
retlua.errstr = "";//MYSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
retlua.fieldCount = 0;//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>
|
|||
|
retlua.rowCount = 0;//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
retlua.rowAt = 0;//<2F><>ǰ<EFBFBD><C7B0>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
if (flg == 1 || flg == 2){
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (mysql_result == NULL)
|
|||
|
{
|
|||
|
retlua.result = -2;
|
|||
|
}else if (mysql_eof(mysql_result))
|
|||
|
{
|
|||
|
retlua.result = -3;
|
|||
|
}
|
|||
|
|
|||
|
if(num_row>0){
|
|||
|
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);//<2F>Ӳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB>
|
|||
|
|
|||
|
retlua.errnono = mysql_errno(&mysql);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
retlua.errstr = mysql_error(&mysql);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
retlua.fieldCount = mysql_field_count(&mysql);//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
retlua.rowCount = num_row;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
rowAtt++;
|
|||
|
retlua.rowAt = rowAtt;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
if (flg == 1){
|
|||
|
mysql_free_result(mysql_result);//<2F>ͷŽ<CDB7><C5BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mysql_result = NULL;
|
|||
|
rowAtt = 0;
|
|||
|
}
|
|||
|
|
|||
|
int i;
|
|||
|
for (i=0;i<retlua.fieldCount;i++)
|
|||
|
{
|
|||
|
snprintf(buff,sizeof(buff), "%s%s;",buff,(char*)mysql_row[i]);
|
|||
|
}
|
|||
|
if (num_row > 15) retlua.result = -1;
|
|||
|
return buff;
|
|||
|
}else {
|
|||
|
retlua.errnono = mysql_errno(&mysql);
|
|||
|
retlua.errstr = mysql_error(&mysql);
|
|||
|
}
|
|||
|
}
|
|||
|
}else if (flg == 3){
|
|||
|
|
|||
|
|
|||
|
int num_row=0;
|
|||
|
if (mysql_result == NULL) {
|
|||
|
retlua.result = -2;
|
|||
|
return "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ͷš<EFBFBD>";
|
|||
|
}
|
|||
|
num_row=mysql_num_rows(mysql_result);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (mysql_eof(mysql_result))
|
|||
|
{
|
|||
|
retlua.result = -3;//<2F>Ѵﵽβ<EFB5BD>ˣ<EFBFBD><CBA3>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѣ<EFBFBD><D1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>潫<EFBFBD><E6BDAB><EFBFBD>Զ<EFBFBD><D4B6>ͷš<CDB7>
|
|||
|
}
|
|||
|
if (num_row == rowAtt) {
|
|||
|
mysql_free_result(mysql_result);//<2F>ͷŽ<CDB7><C5BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mysql_result = NULL;
|
|||
|
rowAtt = 0;
|
|||
|
retlua.result = -3;
|
|||
|
return "<EFBFBD>ѵ<EFBFBD><EFBFBD><EFBFBD>β<EFBFBD>У<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ͷŽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
|||
|
}
|
|||
|
if(num_row>0){
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);//<2F>Ӳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡһ<C8A1><D2BB>
|
|||
|
retlua.errnono = mysql_errno(&mysql);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
retlua.errstr = mysql_error(&mysql);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
rowAtt++;
|
|||
|
retlua.rowAt = rowAtt;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
retlua.fieldCount = mysql_field_count(&mysql);//<2F><><EFBFBD><EFBFBD>
|
|||
|
retlua.rowCount = num_row;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (num_row > 15) retlua.result = -1;
|
|||
|
int i;
|
|||
|
for (i=0;i<retlua.fieldCount;i++)
|
|||
|
{
|
|||
|
snprintf(buff,sizeof(buff), "%s%s;",buff,(char*)mysql_row[i]);
|
|||
|
}
|
|||
|
return buff;
|
|||
|
}else {
|
|||
|
retlua.errnono = mysql_errno(&mysql);
|
|||
|
retlua.errstr = mysql_error(&mysql);
|
|||
|
}
|
|||
|
|
|||
|
}else if (flg == 4){
|
|||
|
if (mysql_result == NULL) {
|
|||
|
retlua.result = -2;
|
|||
|
return "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ͷš<EFBFBD>";
|
|||
|
}
|
|||
|
mysql_free_result(mysql_result);//<2F>ͷŽ<CDB7><C5BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mysql_result = NULL;
|
|||
|
rowAtt = 0;
|
|||
|
retlua.rowAt = rowAtt;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
retlua.errnono = mysql_errno(&mysql);
|
|||
|
retlua.errstr = mysql_error(&mysql);
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
retlua.errnono = mysql_errno(&mysql);
|
|||
|
retlua.errstr = mysql_error(&mysql);
|
|||
|
return "";
|
|||
|
}
|
|||
|
void sasql_LUASQL(char* sqlstr,int row,char* filepath,char* function,int npcindex ,int charaindex,char* msg)
|
|||
|
{
|
|||
|
if(row == -1 )
|
|||
|
{
|
|||
|
mysql_query(&mysql,sqlstr);
|
|||
|
}else{
|
|||
|
NPC_Lua_SQLPushCallBack(sasql_Lua_QueryR(row,sqlstr),filepath,function,npcindex, charaindex,msg);
|
|||
|
}
|
|||
|
}
|
|||
|
char* sasql_Lua_QueryR(int row,char *sqlstr)
|
|||
|
{
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row>0){
|
|||
|
mysql_row = mysql_fetch_row(mysql_result);
|
|||
|
return (char*)mysql_row[row];
|
|||
|
}
|
|||
|
}else
|
|||
|
return "SQL Query ERROR";
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
int sasql_check_iponline( char *IP )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select * from `%s` where `IP`='%s'",sqlconfig.sql_Table,IP);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row>0){
|
|||
|
return 1;
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_query_online_ip(char *IP){
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select * from `OnlineIP` where `IP`='%s'",IP);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row>0){
|
|||
|
return 1;
|
|||
|
}else{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_query(char *nm, char *pas){
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select `%s`,`Password`,`SafePasswd`,`Lock` from `%s` where `%s`=BINARY'%s'",sqlconfig.sql_NAME,sqlconfig.sql_Table,sqlconfig.sql_NAME,nm);
|
|||
|
//print(sqlstr);
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
|
|||
|
if(mysql_row[2]!=NULL){
|
|||
|
if((strcmp(pas,mysql_row[1]) == 0) && (atoi(mysql_row[3])==0 || atoi(mysql_row[3])==getLockType())){
|
|||
|
return 1;
|
|||
|
}else{
|
|||
|
//printf("<22>û<EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n",nm);
|
|||
|
return 2;
|
|||
|
}
|
|||
|
}else
|
|||
|
{
|
|||
|
if(strcmp(pas,mysql_row[1]) == 0 && atoi(mysql_row[3])==0){
|
|||
|
return 1;
|
|||
|
}else{
|
|||
|
//printf("<22>û<EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n",nm);
|
|||
|
return 2;
|
|||
|
}
|
|||
|
}
|
|||
|
}else{
|
|||
|
//printf("<22>û<EFBFBD>%sδע<CEB4>ᣡ\n",nm);
|
|||
|
return 3;
|
|||
|
}
|
|||
|
}else{
|
|||
|
//printf("\n<><6E><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>\n");
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
#ifdef _MO_LOGIN_NO_KICK
|
|||
|
BOOL sasql_CheckPasswd( char *id, char *passwd )
|
|||
|
{
|
|||
|
if(sasql_ckeckStrint(id) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD>%s\n",id);
|
|||
|
return FALSE; }
|
|||
|
if(sasql_ckeckStrint(passwd) == FALSE){
|
|||
|
printf("<EFBFBD>쳣<EFBFBD>ַ<EFBFBD>%s\n",passwd);
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select `PassWord` from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!sasql_mysql_query(sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
if( mysql_row[0] != NULL && strlen(mysql_row[0])>0){
|
|||
|
if(strcmp(passwd, mysql_row[0])==0){
|
|||
|
return TRUE;
|
|||
|
}else{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}else{
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
#endif
|
|||
|
#ifdef _NEW_SQL_MONEY
|
|||
|
int sasql_setSQLPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set SQLPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getSQLPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select SQLPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>[20]<5D><>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>[3]...");
|
|||
|
// sasql_close();
|
|||
|
// sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setGoldPoint( int charaindex, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"update %s set GoldPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getGoldPoint( int charaindex )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
char *id = CHAR_getChar(charaindex, CHAR_CDKEY);
|
|||
|
sprintf(sqlstr,"select GoldPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, id);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>[21]<5D><>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>[3]...");
|
|||
|
// sasql_close();
|
|||
|
// sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
int sasql_setSQLPointByCdkey( char* cdkey, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"update %s set SQLPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, cdkey);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getSQLPointByCdkey( char* cdkey )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select SQLPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, cdkey);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>[22]<5D><>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>[3]...");
|
|||
|
// sasql_close();
|
|||
|
// sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_setGoldPointByCdkey( char* cdkey, int point )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"update %s set GoldPoint=%d where %s=BINARY'%s'", sqlconfig.sql_Table, point, sqlconfig.sql_NAME, cdkey);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
return point;
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
int sasql_getGoldPointByCdkey( char* cdkey )
|
|||
|
{
|
|||
|
char sqlstr[256];
|
|||
|
sprintf(sqlstr,"select GoldPoint from `%s` where %s=BINARY'%s'", sqlconfig.sql_Table, sqlconfig.sql_NAME, cdkey);
|
|||
|
|
|||
|
if(!mysql_query(&mysql,sqlstr)){
|
|||
|
int num_row=0;
|
|||
|
mysql_free_result(mysql_result);
|
|||
|
mysql_result=mysql_store_result(&mysql);
|
|||
|
num_row=mysql_num_rows(mysql_result);
|
|||
|
if(num_row>0){
|
|||
|
mysql_row=mysql_fetch_row(mysql_result);
|
|||
|
// mysql_free_result(mysql_result);
|
|||
|
|
|||
|
return atoi(mysql_row[0]);
|
|||
|
}
|
|||
|
}
|
|||
|
printf("\n<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>[23]<5D><>\n");
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>[3]...");
|
|||
|
// sasql_close();
|
|||
|
// sasql_init();
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|