Com este tutorial apresento para a comunidade como acessar um banco de dados MySQL a partir da linguagem de programação C e sem usar muitas dependências, apenas
libmysqlclient
Espero que seja útil a quem precisa deste tipo de documentação e assim continue contribuindo com a comunidade SL e ajudando quem não tem INTERNET.
configuração
Primeiro, devemos verificar se temos as bibliotecas de design instaladas *-dev
para ser capaz de acessar de C / C ++ para MySQL.
mysql_config --libs
Deve ser algo assim:
-Wl, -Bsymbolic-functions –L / usr / lib / mysql -lmysqlclient rdynamic
Caso você verifique que a biblioteca não está instalada, nós a instalamos com o seguinte comando:
sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
Uma vez que verificamos e instalamos o que precisamos para o link entre MySQL e C, procedemos à criação do banco de dados:
Teste CREATE DATABASE; Teste de USE; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, nome varchar (40), idade int); INSERT INTO data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);
Programação e compilação
Continuamos criando o código:
Query.c
/ * bibliotecas para usar * / #include / * biblioteca que nos permite fazer uso de conexões e consultas com MySQL * / #include / * Para usar printf, etc. * / int main () {MYSQL * conn; / * variável de conexão para MySQL * / MYSQL_RES * res; / * variável que conterá o resultado da consulta * / MYSQL_ROW row; / * variável que conterá os campos de cada registro consultado * / char * server = "localhost"; / * endereço do servidor 127.0.0.1, localhost ou endereço ip * / char * user = "root"; / * usuário para consultar o banco de dados * / char * senha = "root"; / * senha para o usuário em questão * / char * database = "test"; / * nome do banco de dados a ser consultado * / conn = mysql_init (NULL); / * inicialização para anular a conexão * / / * conectar ao banco de dados * / if (! mysql_real_connect (conexão, servidor, usuário, senha, banco de dados, 0, NULL, 0)) {/ * definir os parâmetros de conexão previamente definidos * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * se houver um erro, defina qual foi o erro * / exit (1); } / * enviar consulta SQL * / if (mysql_query (conn, "selecionar * dos dados")) {/ * definição da consulta e a origem da conexão * / fprintf (stderr, "% s \ n", mysql_error ( conn)); saída (1); } res = mysql_use_result (conexão); printf("ID \ tNome \ t \ idade \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * loop através da variável res com todos os registros obtidos para uso * / printf("% s \ t% s \ t% s \ n", linha [0], linha [1], linha [2]); / * a variável de linha se torna um array para o número de campos na tabela * / / * a variável res é liberada e a conexão é fechada * / mysql_free_result (res); mysql_close (conexão); }
Nós compilamos com:
gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
Verificação
Nós executamos:
./Inquerir
fonte: blog de Hugo4295
Que bom, salvo no meu arsenal de scripts e tutoriais no console! +1 para seu parceiro ...
Olá, muitos parabéns por tudo que está na web a respeito desse assunto, o seu foi o mais próximo da solução. Só uma dúvida, por que não pego o executável ??
na hora de comílar não marca nenhum erro mas não gera o ./ser4
Alguma ideia de como fazer isso no Fedora?
Não discordo em compartilhar a informação mas se o copyright não estiver colocado visto que este exemplo foi feito por mim desde 2011 e aqui está o endereço da fonte original
http://hugo4295.blogspot.mx/search?q=MYSQL
Não tem problema Victor, mas se você perceber que não tirei o artigo do seu site, mas de outro onde infelizmente não colocaram a fonte. No entanto, agora eu edito o artigo .. 😉
excelente compartilhamento de conhecimento grande liberdade
E como podem ser feitas inserções ???