ಸಿ ಬಳಸಿ MySQL ಅನ್ನು ಪ್ರವೇಶಿಸಿ

ಈ ಟ್ಯುಟೋರಿಯಲ್ ಮೂಲಕ ನಾನು ಸಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಿಂದ MySQL ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹೇಗೆ ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಹೆಚ್ಚಿನ ಅವಲಂಬನೆಗಳನ್ನು ಬಳಸದೆ ಸಮುದಾಯಕ್ಕೆ ಪ್ರಸ್ತುತಪಡಿಸುತ್ತೇನೆ

libmysqlclient

ಈ ರೀತಿಯ ದಸ್ತಾವೇಜನ್ನು ಅಗತ್ಯವಿರುವವರಿಗೆ ಇದು ಉಪಯುಕ್ತವಾಗಲಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಮತ್ತು ಆದ್ದರಿಂದ ಎಸ್ಎಲ್ ಸಮುದಾಯಕ್ಕೆ ಕೊಡುಗೆ ನೀಡುವುದನ್ನು ಮುಂದುವರೆಸುತ್ತೇನೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಇಲ್ಲದವರಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತೇನೆ.

ಸಂರಚನಾ

ಮೊದಲು ನಾವು ವಿನ್ಯಾಸ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಬೇಕು *-dev C / C ++ ನಿಂದ MySQL ಗೆ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

mysql_config -ಲಿಬ್ಸ್

ಇದು ಈ ರೀತಿ ಕಾಣಿಸಬೇಕು:

-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 -ಫೊ-ಕಟ್ಟುನಿಟ್ಟಾದ-ಅಲಿಯಾಸಿಂಗ್ -DUNIV_LINUX -DUNIV_LINUX

MySQL ಮತ್ತು C ನಡುವಿನ ಲಿಂಕ್‌ಗಾಗಿ ನಮಗೆ ಬೇಕಾದುದನ್ನು ನಾವು ಪರಿಶೀಲಿಸುತ್ತೇವೆ ಮತ್ತು ಸ್ಥಾಪಿಸುವುದರಿಂದ, ನಾವು ಡೇಟಾಬೇಸ್‌ನ ರಚನೆಗೆ ಮುಂದುವರಿಯುತ್ತೇವೆ:

ಡೇಟಾಬೇಸ್ ಪರೀಕ್ಷೆಯನ್ನು ರಚಿಸಿ; ಪರೀಕ್ಷೆ ಬಳಸಿ; ಟೇಬಲ್ ಡೇಟಾವನ್ನು ರಚಿಸಿ (ಐಡಿ ಇಂಟ್ AUTO_INCREMENT NULL ಪ್ರೈಮರಿ ಕೀ, ಹೆಸರು ವರ್ಚಾರ್ (40), ವಯಸ್ಸಿನ ಇಂಟ್); ಡೇಟಾ ಮೌಲ್ಯಗಳಿಗೆ ಸೇರಿಸಿ (NULL, 'ಅಲ್ಮಾ ಹೆರ್ನಾಂಡೆಜ್', 28), (NULL, 'ಜೋಸ್ ಸ್ಯಾಂಚೆ z ್', 39), (NULL, 'ಮಾರ್ಟಿನ್ ಲೋರಾ', 25), (NULL, 'ಲಿಯೊನಾರ್ಡೊ ಕಾರ್ಟೆಜ್', 26), (NULL , 'ಗುಸ್ಟಾವೊ ರೊಮೆರೊ', 25);

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ಸಂಕಲನ

ನಾವು ಕೋಡ್ ಅನ್ನು ರಚಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ:

Query.c

/ * ಬಳಸಲು ಗ್ರಂಥಾಲಯಗಳು * / # ಸೇರಿವೆ / * MySQL * / # ನೊಂದಿಗೆ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಪ್ರಶ್ನೆಗಳನ್ನು ಬಳಸಲು ನಮಗೆ ಅನುಮತಿಸುವ ಲೈಬ್ರರಿ / * ಪ್ರಿಂಟ್ ಎಫ್ ಇತ್ಯಾದಿಗಳನ್ನು ಬಳಸಲು. * / int main () {MYSQL * conn; / * MySQL * / MYSQL_RES * res ಗಾಗಿ ಸಂಪರ್ಕ ವೇರಿಯಬಲ್; / * ವೇರಿಯೇಬಲ್ ಅದು ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ * / MYSQL_ROW ಸಾಲು; / * ವೇರಿಯೇಬಲ್ ಪ್ರತಿ ದಾಖಲೆಯ ಕ್ಷೇತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ * / ಚಾರ್ * ಸರ್ವರ್ = "ಲೋಕಲ್ ಹೋಸ್ಟ್"; / * ಸರ್ವರ್ ವಿಳಾಸ 127.0.0.1, ಲೋಕಲ್ ಹೋಸ್ಟ್ ಅಥವಾ ಐಪಿ ವಿಳಾಸ * / ಚಾರ್ * ಬಳಕೆದಾರ = "ರೂಟ್"; / * ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪ್ರಶ್ನಿಸಲು ಬಳಕೆದಾರರು * / ಚಾರ್ * ಪಾಸ್ವರ್ಡ್ = "ರೂಟ್"; / * ಪ್ರಶ್ನೆಯಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗೆ ಪಾಸ್‌ವರ್ಡ್ * / ಚಾರ್ * ಡೇಟಾಬೇಸ್ = "ಪರೀಕ್ಷೆ"; / * ಪ್ರಶ್ನೆಗೆ ಡೇಟಾಬೇಸ್‌ನ ಹೆಸರು * / conn = mysql_init (NULL); / * ಸಂಪರ್ಕವನ್ನು ಶೂನ್ಯಗೊಳಿಸಲು ಪ್ರಾರಂಭಿಸುವಿಕೆ * / / * ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ * / if (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * ಸಂಪರ್ಕ ನಿಯತಾಂಕಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ ಹಿಂದೆ ಹೊಂದಿಸಿ * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * ದೋಷವಿದ್ದರೆ ಯಾವ ದೋಷ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಿ * / ನಿರ್ಗಮನ (1); Q / * SQL ಪ್ರಶ್ನೆಯನ್ನು ಕಳುಹಿಸಿ * / if (mysql_query (conn, "ಡೇಟಾದಿಂದ * ಆಯ್ಕೆಮಾಡಿ")) {/ * ಪ್ರಶ್ನೆಯ ವ್ಯಾಖ್ಯಾನ ಮತ್ತು ಸಂಪರ್ಕದ ಮೂಲ * / fprintf (stderr, "% s \ n", mysql_error ( conn)); ನಿರ್ಗಮನ (1); } res = mysql_use_result (conn);
	printf("ID \ t ಹೆಸರು \ t \ ವಯಸ್ಸು \ n"); ((ಸಾಲು = mysql_fetch_row (res))! = NULL) / * ವೇರಿಯೇಬಲ್ ರೆಸ್ ಮೂಲಕ ಲೂಪ್ ಬಳಕೆಗಾಗಿ ಪಡೆದ ಎಲ್ಲಾ ದಾಖಲೆಗಳೊಂದಿಗೆ * /
		printf("% s \ t% s \ t% s \ n", ಸಾಲು [0], ಸಾಲು [1], ಸಾಲು [2]); / * ಸಾಲು ವೇರಿಯೇಬಲ್ ಕೋಷ್ಟಕದಲ್ಲಿನ ಕ್ಷೇತ್ರಗಳ ಸಂಖ್ಯೆಗೆ ಒಂದು ಶ್ರೇಣಿಯಾಗುತ್ತದೆ * / / * ರೆಸ್ ವೇರಿಯಬಲ್ ಬಿಡುಗಡೆಯಾಗುತ್ತದೆ ಮತ್ತು ಸಂಪರ್ಕವನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ * / mysql_free_result (res); mysql_close (conn); }

ನಾವು ಇದರೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡುತ್ತೇವೆ:

gcc -o ಪ್ರಶ್ನೆ $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

ಪರಿಶೀಲನೆ

ನಾವು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತೇವೆ:

./ ಪ್ರಶ್ನೆ

ಮೂಲ: ಹ್ಯೂಗೋ 4295 ರ ಬ್ಲಾಗ್


ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: ಮಿಗುಯೆಲ್ ಏಂಜೆಲ್ ಗಟಾನ್
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.

  1.   ಕೊರಟ್ಸುಕಿ ಡಿಜೊ

    ಒಳ್ಳೆಯದು, ನನ್ನ ಆರ್ಸೆನಲ್ ಆಫ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಮತ್ತು ಟ್ಯುಟೋರಿಯಲ್‌ಗಳಲ್ಲಿ ಕನ್ಸೋಲ್‌ನಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ! ನಿಮ್ಮ ಪಾಲುದಾರರಿಗಾಗಿ +1 ...

  2.   ರಾಡ್ರಿಗೋ ಡಿಜೊ

    ಹಲೋ, ಈ ಸಮಸ್ಯೆಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ವೆಬ್‌ನಲ್ಲಿರುವ ಎಲ್ಲದಕ್ಕೂ ಅನೇಕ ಅಭಿನಂದನೆಗಳು, ನಿಮ್ಮದು ಪರಿಹಾರಕ್ಕೆ ಹತ್ತಿರವಾಗಿದೆ. ಸ್ವಲ್ಪ ಅನುಮಾನ, ನಾನು ಕಾರ್ಯಗತಗೊಳ್ಳುವಿಕೆಯನ್ನು ಏಕೆ ಪಡೆಯುವುದಿಲ್ಲ ??

    ಕೊಮಲಾರ್ ಸಮಯದಲ್ಲಿ ಅದು ಯಾವುದೇ ದೋಷವನ್ನು ಗುರುತಿಸುವುದಿಲ್ಲ ಆದರೆ ಅದು ./ser4 ಅನ್ನು ಉತ್ಪಾದಿಸುವುದಿಲ್ಲ

  3.   ಆಂಡ್ರೆಲೊ ಡಿಜೊ

    ಫೆಡೋರಾದಲ್ಲಿ ಅದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ಯಾವುದೇ ಕಲ್ಪನೆ?

  4.   ವಿಕ್ಟರ್ ಡೆ ಲಾ ಒ ಡಿಜೊ

    ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ನಾನು ಒಪ್ಪುವುದಿಲ್ಲ ಆದರೆ ಈ ಉದಾಹರಣೆಯನ್ನು 2011 ರಿಂದ ನಾನು ಮಾಡಿದಾಗಿನಿಂದ ಹಕ್ಕುಸ್ವಾಮ್ಯವನ್ನು ಇರಿಸದಿದ್ದರೆ ಮತ್ತು ಮೂಲ ಮೂಲದ ವಿಳಾಸ ಇಲ್ಲಿದೆ

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

    1.    ಎಲಾವ್ ಡಿಜೊ

      ತೊಂದರೆ ವಿಕ್ಟರ್ ಇಲ್ಲ, ಆದರೆ ನೀವು ಗಮನಿಸಿದರೆ ನಾನು ನಿಮ್ಮ ಸೈಟ್‌ನಿಂದ ಲೇಖನವನ್ನು ತೆಗೆದುಕೊಂಡಿಲ್ಲ, ಆದರೆ ಇನ್ನೊಂದರಿಂದ ದುರದೃಷ್ಟವಶಾತ್ ಅವರು ಮೂಲವನ್ನು ಹಾಕಲಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಇದೀಗ ನಾನು ಲೇಖನವನ್ನು ಸಂಪಾದಿಸುತ್ತೇನೆ ..

  5.   ಅಲ್ಫೊನ್ಸೊ ಒವಿಡಿಯೊ ಲೋಪೆಜ್ ಮೊರೇಲ್ಸ್ ಡಿಜೊ

    ಅತ್ಯುತ್ತಮ ಹಂಚಿಕೆ ಜ್ಞಾನ ಉತ್ತಮ ಸ್ವಾತಂತ್ರ್ಯ

  6.   ಡೇನಿಯೆಲಾ ಫರ್ನಾಂಡೀಸ್ ಡಿಜೊ

    ಮತ್ತು ಒಳಸೇರಿಸುವಿಕೆಯನ್ನು ಹೇಗೆ ಮಾಡಬಹುದು ???