Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2009, 15:59
Tikitios
 
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;
}