Bu fonksiyon, verilen kullanıcının giftinfonew tablosundaki verilerini okumaya çalışıyor ve eğer veri yoksa yeni bir satır eklemeyi deneyen bir fonksiyon gibi görünüyor. Önerim, verilen kullanıcının uID değerine sahip bir satırın varlığını öncelikle kontrol etmek olacaktır. Bu kontrol işlemini yapmak için aşağıdaki gibi bir sorgu kullanılabilir:
SELECT * FROM giftinfonew WHERE uID = '%s'
Bu sorgu, verilen uID değerine sahip bir satırın varlığını kontrol eder. Eğer satır varsa, döngü içinde iCount değişkenine bir değer atanacak ve döngüden çıkılacaktır. Eğer satır yoksa, iCount değişkenine değer atanmayacak ve INSERT sorgusu çalıştırılacaktır.
BOOL MyDB: :B_PROCESS_21(int UserIndex, int tGiftInfo[10][2])
{
// Kullanıcının verilerini okumaya çalışalım
sprintf(mQUERY, "SELECT * FROM giftinfonew WHERE uID = '%s'", mUSER[UserIndex].uID);
if (!RECONNECT_TO_DATABASE02())
{
return FALSE;
}
if (mDB02.exec_query(mQUERY) < 0)
{
return FALSE;
}
// Sonuçları alalım
MYSQL_RES* res = mDB02.get_res();
if (res == NULL)
{
__LogMgr()->Log("!Query failed - (%s).n", mQUERY);
__LogMgr()->Log("tttWhy - %sn", mDB02.get_error_msg().c_str());
return FALSE;
}
// Eğer satır varsa, verileri tGiftInfo dizisine atalım
MYSQL_ROW row;
int iCount = 0;
while ((row = mysql_fetch_row(res)))
{
for (int i = 0; i < (int)res->field_count; i++)
{
tGiftInfo[i][0] = row[i] ? atol(row[i]) : 0;
}
iCount++;
}
// Sonuçları temizleyelim
mDB02.clear_res();
// Eğer satır yoksa,