|
MySQL.RU - Webboard
Вернуться
C++Mysql как использовать свои переменные? (row) 23/07/2009 - 12:13:17
Re: C++Mysql как использовать свои переменные? (Diter) 24/07/2009 - 17:12:38
> Original message text:
> From: row - 23/07/2009 - 12:13:17
> Subject:C++Mysql как использовать свои переменные?
> -----------------
> Добрый день.
>
> Как на с++ использовать локальные переменные, при запросе к базе Mysql.
>
> пример кода, он не работает...
>
>
>
> char user[25]="user",host[25]="195.55.55.55",passwd[25]="12345",
> database[25]="mydb",waddr[35]="ABCD";
>
> MYSQL mysql;
>
> mysql_init(&mysql);
> mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
> mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
> if
> (!mysql_real_connect(&mysql,host,user,passwd,database,0,NULL,0))
> {
> fprintf(stderr, "Failed to connect to database: Error: %s\n",
> mysql_error(&mysql));
> }
>
>
> if(mysql_query(&mysql,"INSERT INTO tab1 VALUES (NOT NULL,waddr,'TEST',CURRENT_TIMESTAMP)" ) != 0)
>
> {
> fprintf(stderr, "Error: can't execute INSERT-query\n");
> exit(1);
> }
>
> mysql_close(&mysql);
>
>
>
>
> Компилируется код нормально, но выводит предупреждение: неиспользуемая переменная ‘waddr’
> Соответственно при выполнении программы Error: can't execute INSERT-query
>
> Когда в запросе "INSERT INTO tab1 VALUES (NOT NULL,waddr,'TEST',CURRENT_TIMESTAMP)"
> waddr делаю 'waddr' в базе идет запись следующего вида
> id z1 z2 date
> 1 waddr TEST 23.07.2009итд
>
> Мне нужно чтобы в базу сохранялось значение переменной waddr.
>
> Что не так в приведенном коде???
>
From: Diter - 24/07/2009 - 17:12:38
Subject:C++Mysql как использовать свои переменные?
-----------------
В данном случае MySQL получает запрос:
INSERT INTO tab1 VALUES (NOT NULL,waddr,'TEST',CURRENT_TIMESTAMP)
где, естественно, не может определить что это за переменная `waddr`, поскольку ожидалось значение переменой.
Запрос необходимо сформировать перед отправкой, нечто вроде:
...
my_query << "INSERT INTO tab1 VALUES (NOT NULL," << quote << waddr << ",'TEST',CURRENT_TIMESTAMP)";
if(mysql_query(&mysql,my_query)!= 0)
...
Обратите внимание на манипулятор `quote`, который экранирует кавычки, если они находятся в переменной `waddr`.
http://tangentsoft.net/mysql++/doc/html/userman/tutorial.html#qescape
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35952
|
|