Hola estoy haciendo un programa en c que se conecta a una base de datos mysql, y tengo un problema cuando recojo las filas de la consulta, os lo explico, primero pongo el código:
Código:
#include <iostream>
#include <mysql.h>
using namespace std;
int main(int argc, char** argv) {
MYSQL *conexion;
MYSQL_RES *result;
MYSQL_ROW row;
//MYSQL_FIELD *fields;
unsigned int num_fields=0,i=0;
my_ulonglong num_rows;
const char *consulta = "SELECT id,name,phone,email FROM users";
conexion = mysql_init(NULL);
if (!mysql_real_connect(conexion, "iphost",
"user", "pass", "database", 0, NULL, 0)){
cout<<stderr<<" Failed to connect to database: Error: ";
cout<<endl<<mysql_error(conexion);
}
//if (mysql_real_query(conexion, consulta,strlen(consulta))!=0){
if (mysql_query(conexion, consulta)!=0){
cout<<"Error: mysql_real_query ha fallado en la consulta:"
cout<<consulta<<endl;
}
result = mysql_store_result(conexion);
if (result){ //Hay filas que devolver
num_fields = mysql_field_count(conexion);
num_rows = mysql_num_rows(result);
while(i<25){
i++;
cout<<i<<endl;
}
int j=0;
while(row = mysql_fetch_row(result)){
j++;
cout<<"La fila es "<<j<<endl;
}
while(i<50){
i++;
cout<<i<<endl;
}
mysql_free_result(result);
}
else {
if (mysql_errno(conexion)){
cout<<stderr<<"Error: "
cout<<mysql_error(conexion)<<endl;
}
else if (mysql_field_count(conexion) == 0){
// El query no ha devuelto nada
cout<<"El query no ha devuelto nada";
}
}
mysql_close(conexion);
return 0;
}
y el código de salida es:
Código:
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
La fila es 4199291
La fila es 2280744
La fila es 1628938179
La fila es 1629738798
La fila es 1629738792
La fila es 1629738793
La fila es 1629738794
/cygdrive/C/Program Files/NetBeans 6.9.1/ide/bin/nativeexecution/dorun.sh: line
33: 4068 Segmentation fault (core dumped) sh "${SHFILE}"
Press [Enter] to close the terminal ...
tengo un problema en la línea while (row = mysql_fetch_row(result))
pero no entiendo que le puede pasar para que me haga eso con la variable j, que es un simple entero, estoy desquiciado, necesitro vuestra ayuda!!
Muchas gracias