naperva Ответов: 1

Как вставить данные в таблицу mysql?


Это мой исходный код, и я пробовал читать строки с помощью scanf/getchar, но это не сработало. Тогда как мне вставить данные в таблицу mysql после чтения в программе (я работаю в Linux)

#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

static char *host = "localhost";
static char *user = "root";
static char *pass = "PASSWORD";
static char *dbname = "tutorial";

unsigned int port = 3306;
static char *unix_socket = NULL;
unsigned int flag = 0;

int main()
{
	MYSQL *conn;
	MYSQL_RES * res;
	MYSQL_ROW row;
	conn = mysql_init(NULL);

	if(!(mysql_real_connect(conn, host, user, pass, dbname, port, unix_socket, flag)))
	{
		fprintf(stderr, "Error: %s[%d]", mysql_error(conn), mysql_errno(conn));
		exit(1);
	}

	mysql_query(conn, "SELECT * FROM users");
	res = mysql_store_result(conn);
	

	while(row = mysql_fetch_row(res))
	{
		printf("%s\t%s\n", row[0], row[1]);
	}

	mysql_free_result(res);
	mysql_close(conn);
	
	return EXIT_SUCCESS;
}


Что я уже пробовал:

...
int id[1] = 5;
char name[8] = " Джек";
...
mysql_query(коробки, вставить в пользователи(ИД, имя) значения(идентификатор, имя);
...

1 Ответов

Рейтинг:
1

Garth J Lancaster

Ну, вы не сказали, что произошло, когда вы попробовали свой sql, хотя я бы указал на пару вещей

а) mysql_query-нет, не для вставки, вам нужны mysql_stmt_prepare и mysql_stmt_execute
б) вы не показываете структуру своей таблицы, но если "id" является автоматически обновленным первичным ключом, вы не должны включать его в инструкцию SQL insert

Я бы взглянул на эти ссылки (особенно на страницу 419... в первой ссылке нужно сделать вставку, с привязкой переменных и не конкатенированным SQL)

http://www.kitebird.com/mysql-book/ch06-3ed.pdf[^]

Учебник по программированию MySQL C API[^]


naperva

Я только что создал с помощью этой команды в терминале:

Создание пользователей базы данных;
Создать таблицу users (id INT, name VARCHAR(20));
Вставить в users (id,name) значения (0, " Floki");

После команд в терминале я ничего не менял и получил этот код для отображения табличных значений. Я вижу эту таблицу в своей базе данных mysql с помощью терминала. Я проверяю ваши ссылки сейчас, но я в замешательстве :)

+------+-------+
| код | наименование |
+------+-------+
| 0 / Флоки |
+------+-------+