Приведенные ниже коды вставляют значения в базу данных MYSQL.Если я использую "sprintf (Query," INSERT в t (d) значения (% c) ", a);"это не вставит слово привет в мою базу данных.Я также попытался использовать (% s) в приведенном выше заявлении.Однако, если я использую "sprintf (Query," INSERT в t (d) значения (% d) ", b);"он вставляет значения 1234 в базу данных.
Что происходит?Почему он не вставляет символ или строку в мою базу данных, а только целые числа?
Столбец d моей базы данных определен как тип символа.
#include "stdafx.h"
#include <stdio.h>
#include <mysql.h>
//#include <string>
//using std::string;
//#include <atlstr.h>
MYSQL *pConnection;
MYSQL_RES *pResult=NULL;
MYSQL_ROW Row;
char Query[256];
int main(int argc, char* argv[])
{
pConnection = mysql_init(NULL);
mysql_real_connect(pConnection,"localhost","root","y123","test",0,NULL,0);
char a[] ="Hello";
int b = 1234;
printf("%s", a);
sprintf(Query, "INSERT into t(d) values (%s)", a);
mysql_query(pConnection, Query);
}