C를 사용하여 MySQL에 액세스

이 튜토리얼을 통해 저는 C 프로그래밍 언어에서 너무 많은 종속성을 사용하지 않고 MySQL 데이터베이스에 액세스하는 방법을 커뮤니티에 제시합니다.

libmysqlclient

이런 종류의 문서가 필요한 사람들에게 유용하여 SL 커뮤니티에 계속 기여하고 인터넷이없는 사람들에게 도움이되기를 바랍니다.

구성

먼저 디자인 라이브러리가 설치되어 있는지 확인해야합니다. *-dev C / C ++에서 MySQL로 액세스 할 수 있습니다.

mysql_config --libs

다음과 같이 나타납니다.

-Wl, -Bsymbolic-functions –L / usr / lib / mysql -lmysqlclient rdynamic

라이브러리가 설치되어 있지 않은 것을 확인하는 경우 다음 명령을 사용하여 설치합니다.

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

MySQL과 C 간의 연결에 필요한 것을 확인하고 설치 했으므로 데이터베이스 생성을 진행합니다.

CREATE DATABASE 테스트; 사용 테스트; CREATE TABLE 데이터 (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, 이름 varchar (40), age int); INSERT INTO 데이터 값 (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , '구스타보 로메로', 25);

프로그래밍 및 컴파일

계속해서 코드를 생성합니다.

Query.c

/ * 우리가 사용할 라이브러리 * / #include / * MySQL로 연결 및 쿼리를 사용할 수있는 라이브러리 * / #include / * printf 등을 사용하려면 * / int main () {MYSQL * conn; / * MySQL의 연결 변수 * / MYSQL_RES * res; / * 쿼리 결과가 포함될 변수 * / MYSQL_ROW 행; / * 참조 된 각 레코드에 대한 필드를 포함 할 변수 * / char * server = "localhost"; / * 서버 주소 127.0.0.1, localhost 또는 ip 주소 * / char * user = "root"; / * 데이터베이스를 쿼리하는 사용자 * / char * password = "root"; / * 해당 사용자의 비밀번호 * / char * database = "test"; / * 쿼리 할 데이터베이스 이름 * / conn = mysql_init (NULL); / * 연결을 null로 초기화 * / / * 데이터베이스에 연결 * / if (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * 이전에 설정 한 연결 매개 변수 정의 * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * 오류가있는 경우 오류가 무엇인지 정의 * / exit (1); } / * send SQL query * / if (mysql_query (conn, "select * from data")) {/ * 쿼리 정의 및 연결 출처 * / fprintf (stderr, "% s \ n", mysql_error ( conn)); 출구 (1); } res = mysql_use_result (conn);
	printf( "ID \ t 이름 \ t \ 나이 \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * 사용을 위해 얻은 모든 레코드를 사용하여 res 변수를 반복합니다 * /
		printf( "% s \ t % s \ t % s \ n", 행 [0], 행 [1], 행 [2]); / * 행 변수는 테이블의 필드 수만큼 배열이됩니다. * / / * res 변수가 해제되고 연결이 닫힙니다. * / mysql_free_result (res); mysql_close (conn); }

우리는 다음과 같이 컴파일합니다.

gcc -o 쿼리 $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

확인

우리는 다음을 실행합니다.

./질문

출처 : Hugo4295의 블로그


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   고라츠키

    콘솔의 스크립트 및 자습서에 저장되었습니다. 파트너를위한 +1 ...

  2.   로드리고

    안녕하세요,이 문제와 관련하여 웹에있는 모든 것에 대해 많은 축하를드립니다. 귀하의 문제가 해결책에 가장 가깝습니다. 약간의 의심, 왜 내가 실행 파일을 얻지 않습니까 ??

    comílar 당시에는 오류를 표시하지 않지만 ./ser4를 생성하지 않습니다.

  3.   안드레로

    Fedora에서 수행하는 방법을 아십니까?

  4.   빅터 드 라 오

    본인은 정보 공유에 동의하지 않지만 2011 년부터 본인이이 예제를 제작했기 때문에 저작권이없는 경우 여기에 원본 출처의 주소가 있습니다.

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    엘라 브

      빅터는 문제 없습니다.하지만 제가 귀하의 사이트에서 기사를 가져 오지 않았다는 것을 알게된다면 불행히도 출처를 밝히지 않은 다른 기사에서 가져 왔습니다. 하지만 지금은 기사를 편집하고 있습니다 .. 😉

  5.   알폰소 오비디오 로페즈 모랄레스

    뛰어난 지식 공유 큰 자유

  6.   다니엘라 페르난데스

    그리고 삽입은 어떻게 할 수 있습니까 ???