Форум программистов, компьютерный форум CyberForum.ru

mysql_fetch_row - C++

Восстановить пароль Регистрация
 
enderkond
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 25
19.03.2013, 22:36     mysql_fetch_row #1
Что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#pragma comment (lib,"c:\\windows\\system32\\libmysql.lib")
 
#include <windows.h>
#include <MySQL\mysql.h>
#include <iostream>
#include <vector>
 
using namespace std;
 
class c_mysql
{
private:
    MYSQL_RES* ans;
 
    MYSQL *conn;
    MYSQL_ROW row;
 
public:
    int inc(const char*, const char*, const char*, const char*);
    MYSQL_RES* query(const char* query);
    int getCol();
    unsigned int getNumRows();
};
 
int c_mysql::inc(const char* server, const char* database, const char* login, const char* pass)
{
    if(!(conn = mysql_init(NULL)))
        return -1;
    if(!mysql_real_connect(conn, server, login, pass, database, 0, NULL, 0))
        return -2;
 
    return 0;
}
MYSQL_RES* c_mysql::query(const char* query)
{
    mysql_query(conn, query);
    ans = new MYSQL_RES;
    ans = mysql_store_result(conn);
 
    return ans;
}
int c_mysql::getCol()
{
    return mysql_field_count(conn);
}
unsigned int c_mysql::getNumRows()
{
    return mysql_num_rows(ans);
}
 
 
c_mysql mysql;
 
int main()
{
    int bots = 0, users = 0;
    struct UserS
    {
        unsigned int ID;
        string name;
    };
    vector <unsigned int> user_list;
 
    MYSQL_RES* ans;
    MYSQL_ROW row;
    unsigned int id_ = 0;
 
    if(int code = mysql.inc("141.8.192.102", "smop_forum", "smop_bet", "432vals432vertiio")!=0)
        if(code == -2)
            std::cout << "Cannt connect!" << endl;
        else
        return -1;
 
    cout << "New users:" << endl;
 
    while(true)
    {
        string query_ = "SELECT * FROM `phpbb_users` limit ";
        char numstr[21];
        query_ += itoa(id_, numstr, 10); query_ += ", 1";
        ans = mysql.query(query_.c_str());
        ++id_;
        if(mysql.getNumRows() == 0)
        {
            break;
        }
        row = mysql_fetch_row(ans);
        
        if(atol(row[24]) == 1) // Don't activated
        {
            
            cout << "ID:" << row[0] << "\t" << row[7] << endl;
 
            user_list.push_back(atoi(row[0]));
        }
    }
 
    cout << "White list: " << endl;
 
    for(int i=0; i<user_list.size(); ++i)
    {
        string query_ = "SELECT * FROM `phpbb_users` WHERE id='";
        char numstr[21];
        query_ += itoa(user_list[i], numstr, 10); query_ += "'";
        ans = mysql.query(query_.c_str());
        row = mysql_fetch_row(ans);
 
        if(stricmp(row[2], row[3])!=0)
        {
            cout << row[2] << "\t" << row[2] << "\t\tID:" << "";
        }
    }
 
    system("pause");
    return 0;
}
Когда дело доходит до row = mysql_fetch_row(ans);, который в конце, то вылетает ошибка "Unhandled exception at 0x5e49e238 in mioo_killer.exe: 0xC0000005: Access violation reading location 0x0000000c." Еще раз отмечу, что mysql_fetch_row в первом цикле работает нормально!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 22:36     mysql_fetch_row
Посмотрите здесь:

MySQL и вывод от mysql_fetch_row PHP БД
PHP БД возвращаются неверные даные в mysql_fetch_row
C++ [MySQL] AppCrash при mysql_fetch_row()
Обработать результат, возвращаемый mysql_fetch_row MySQL
PHP БД MySQL Mysql_fetch_row() expects parameter 1 to be resource, boolean given in
Mysql_fetch_row wtf PHP
PHP БД Mysql_fetch_row() expects parameter 1 to be resource, boolean given in

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru