Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema en consulta mySQL

Estas en el tema de Problema en consulta mySQL en el foro de C/C++ en Foros del Web. Tengo un pequeño problema con una consulta, lo que pasa es esto: -me conecto a la base de datos MySQL -Hago una consulta con mysql_real_query(); ...
  #1 (permalink)  
Antiguo 24/02/2009, 15:59
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Problema en consulta mySQL

Tengo un pequeño problema con una consulta, lo que pasa es esto:
-me conecto a la base de datos MySQL
-Hago una consulta con mysql_real_query();
si la ID que inserto es correcta me funciona perfectamente, pero si no lo es el programa se me cierra y me da error, y en vez de eso deberia dar un mensaje de que el ID no existe.
El codigo es algo asi


Cita:
#include <windows.h>
#include <winsock.h>
#pragma warning (disable: 4514 4786)
#pragma warning( push, 3 )

#include <stdio.h>
#include <string>
#include <mysql/mysql.h>
#include <unistd.h>
#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
MYSQL mysql;
MYSQL_ROW row;
MYSQL_RES *res;

string query;
string ID;
string NOMBRE;
string CONTRASENA;

cout <<"Conectando... ";
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"localhost","Usuario", "Pass","DataBase",0,NULL,0))
{
cout <<"Fallo en la conexion a la base de datos, Error:"<<mysql_error(&mysql)<<"." << endl;
}
else
{
cout <<"[Listo]"<< endl;
cout <<"Introduzca su nombre de cuenta"<< endl;
cin >> NOMBRE;
cout <<"Introduzca su contraseña"<< endl;
cin >> CONTRASENA;
query =("SELECT ID FROM ejemplo WHERE contraseña ='"+CONTRASENA+"'AND nombre ='"+NOMBRE+"'");
if(mysql_real_query(&mysql, query.c_str(), query.length()) == 0)
{
res = mysql_store_result(&mysql);
row = mysql_fetch_row(res);
ID = row[0];
cout <<"La ID es: "<<ID<<"."<< endl;
mysql_free_result(res);
}
else{
cout <<"Nombre y/o contraseña invalido."<< endl;
system("PAUSE");
}
mysql_close(&mysql);
system("PAUSE");
}

return 0;
}
  #2 (permalink)  
Antiguo 25/02/2009, 09:46
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: Problema en consulta mySQL

Ya lo solucione
el pedazo de codigo queda asi:
Cita:
else if (Cadena[0] == 'L' && Cadena[1] == 'O' && Cadena[2] == 'G')
{
string cuenta_ID;
string NOMBRE;
string CONTRASENA;
unsigned short i = 3;
while (Cadena[i] != '/')
{
NOMBRE += Cadena[i];
i++;
}
i++;

while (Cadena[i] != '/')
{
CONTRASENA += Cadena[i];
i++;
}
string query;
query =("SELECT ID FROM ejemplo WHERE contraseña ='"+CONTRASENA+"'AND nombre ='"+NOMBRE+"'");
if(mysql_real_query(&mysql, query.c_str(), query.length()) != 0)
{
Server->Send ("Usuario y/o Contraseña incorrecto", ID);
}
else
{
res = mysql_store_result(&mysql);
row = mysql_fetch_row(res);
if (res != NULL && row != NULL )
{
cuenta_ID = row[0];
cout <<"La ID es: "<<cuenta_ID<<"."<< endl;
Mensaje = string("Tu ID es: ") + cuenta_ID + "\r\n";
Server->Send (Mensaje, ID);
mysql_free_result(res);
}
else Server->Send ("Usuario y/o Contraseña incorrecto", ID);
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.