使用的是 Yang SA8.0 服務端(Linux版)[2012.09.04] 內附的 SQL表.sql
目前嘗試的辦法
換成 Yang SA8.0 服務端(Linux版)[2010.07.22] 的SQL一樣,比對後覺得在登入方面,兩個資料庫是類似的
直接在資料庫先創造一組資料,只輸入name/password,一樣查找資料庫失敗
嘗試更改資料庫名稱並對應acserv.cf內容,排除資料庫名稱輸入錯誤的問題
>改為cs,資料庫連接失敗,這邊正常
>先修改SQL內表單名稱為sasql,並修改acserv.cf內容,資料庫連接成功
但一樣無法登入,出現本文一樣的情形
嘗試更改權限用戶帳號密碼,類似上述步驟,排除輸入錯誤的問題
並使用root帳號密碼,問題一樣存在
關閉後台功能,無效
開關自動註冊功能,無效
數據庫地址於127.0.0.1與localhost間切換,無效
客戶端更換為 Yang 提供的華裔官方客戶端,並更改對應啟動參數,無效
sa_8002a.exe updated windowmode nopatch nodelay realbin:158 adrnbin:158 sprbin:137 spradrnbin:137 realtrue:13 adrntrue:5
查詢6.0源碼,遭遇的問題應與這一段判斷句相關
這是哪裡出了問題呢 ?
複製內容到剪貼板
代碼:
int sasql_query(char *nm, char *pas){
char sqlstr[256];
sprintf(sqlstr,"select * from %s where %s=BINARY'%s'",config.sql_Table,config.sql_NAME,nm);
if(!mysql_query(&mysql,sqlstr)){
int num_row=0;
mysql_result=mysql_store_result(&mysql);
num_row=mysql_num_rows(mysql_result);
mysql_free_result(mysql_result);
if(num_row>0){
mysql_row=mysql_fetch_row(mysql_result);
if(strcmp(pas,mysql_row[1]) == 0){
return 1;
}else{
printf("用戶%s密碼錯誤!\n",nm);
return 2;
}
}else{
printf("用戶%s未註冊!\n",nm);
return 3;
}
}else{
printf("\n數據庫查找失敗!\n");
printf("重新連接數據庫...");
sasql_close();
sasql_init();
printf("完成\n");
return 0;
}
}
[
本帖最後由 tony50314 於 2015-5-18 17:19 編輯 ]