Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35952



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |