Metal2001
01-02-2009, 11:14
Devo fare un programma in C che prende come parametro una stringa,interroga il database Mysql e mi restituisce la tupla contenete quel valore
Questa versione è con valori numerici (del tipo "del tipo restituisci l'impiegato con ID=X,dove X è un numero e lo passo cosi: "./eseguibile X")
Se al posto di un numero dovessi inserire dei caratteri le virgolette "" mi creano dei problemi perchè non riesco ad inserirle nella query sql, come posso fare?
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
main(int argc,char *argv[]) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "xxx";
char *database = "DB1";
char sql[80];
strcpy(sql,"SELECT * FROM PROVA WHERE ID=");
strcat(sql,argv[1]);
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
if (mysql_query(conn, sql)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s %s %s %s\n", row[0], row[1], row[2], row[3]);
mysql_free_result(res);
mysql_close(conn);
}
Questa versione è con valori numerici (del tipo "del tipo restituisci l'impiegato con ID=X,dove X è un numero e lo passo cosi: "./eseguibile X")
Se al posto di un numero dovessi inserire dei caratteri le virgolette "" mi creano dei problemi perchè non riesco ad inserirle nella query sql, come posso fare?
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
main(int argc,char *argv[]) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "xxx";
char *database = "DB1";
char sql[80];
strcpy(sql,"SELECT * FROM PROVA WHERE ID=");
strcat(sql,argv[1]);
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
if (mysql_query(conn, sql)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s %s %s %s\n", row[0], row[1], row[2], row[3]);
mysql_free_result(res);
mysql_close(conn);
}