இந்த டுடோரியலுடன், சி நிரலாக்க மொழியிலிருந்து ஒரு 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 -fno-கண்டிப்பான-மாற்றுப்பெயர்ச்சி -DUNIV_LINUX -DUNIV_LINUX
MySQL மற்றும் C க்கு இடையிலான இணைப்பிற்கு தேவையானதை நாங்கள் சரிபார்த்து நிறுவுவதால், தரவுத்தளத்தை உருவாக்குவதற்கு நாங்கள் செல்கிறோம்:
தரவுத்தள சோதனை உருவாக்கவும்; சோதனை பயன்பாடு; டேபிள் தரவை உருவாக்கவும் (ஐடி எண்ணாக AUTO_INCREMENT NULL PRIMARY KEY, பெயர் வார்சார் (40), வயது எண்ணாக); தரவு மதிப்புகள் (NULL, 'அல்மா ஹெர்னாண்டஸ்', 28), (NULL, 'ஜோஸ் சான்செஸ்', 39), (NULL, 'மார்ட்டின் லோரா', 25), (NULL, 'லியோனார்டோ கோர்டெஸ்', 26), (NULL , 'குஸ்டாவோ ரோமெரோ', 25);
நிரலாக்க மற்றும் தொகுப்பு
நாங்கள் தொடர்ந்து குறியீட்டை உருவாக்குகிறோம்:
வினவல்
/ * பயன்படுத்த நூலகங்கள் * / # அடங்கும் / * MySQL உடன் இணைப்புகள் மற்றும் வினவல்களைப் பயன்படுத்த அனுமதிக்கும் நூலகம் * / # அடங்கும் / * Printf போன்றவற்றைப் பயன்படுத்துவதற்காக. * / int main () {MYSQL * conn; / * MySQL * / MYSQL_RES * res க்கான இணைப்பு மாறி; / * வினவலின் முடிவைக் கொண்டிருக்கும் மாறி * / MYSQL_ROW வரிசை; / * ஒவ்வொரு பதிவுக்கும் புலங்களைக் கொண்டிருக்கும் மாறி * / char * server = "localhost"; / * சேவையக முகவரி 127.0.0.1, லோக்கல் ஹோஸ்ட் அல்லது ஐபி முகவரி * / கரி * பயனர் = "ரூட்"; / * தரவுத்தளத்தை வினவ பயனர் * / char * password = "root"; / * கேள்விக்குரிய பயனருக்கான கடவுச்சொல் * / char * database = "test"; / * வினவலுக்கான தரவுத்தளத்தின் பெயர் * / 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); வைட்டமின்("ஐடி \ t பெயர் \ t \ வயது \ n"); போது ((வரிசை = mysql_fetch_row (res))! = NULL) / * மாறி ரெஸ் வழியாக வளையம் பயன்பாட்டிற்காக பெறப்பட்ட அனைத்து பதிவுகளுடன் * / வைட்டமின்("% s \ t% s \ t% s \ n", வரிசை [0], வரிசை [1], வரிசை [2]); / * வரிசை மாறி அட்டவணையில் உள்ள புலங்களின் எண்ணிக்கையின் வரிசையாக மாறும் * / / * ரெஸ் மாறி வெளியிடப்பட்டு இணைப்பு மூடப்படும் * / mysql_free_result (ரெஸ்); mysql_close (conn); }
நாங்கள் இதனுடன் தொகுக்கிறோம்:
gcc -o வினவல் $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
சரிபார்ப்பு
நாங்கள் இயக்குகிறோம்:
./ கேள்வி
மூல: ஹ்யூகோ 4295 இன் வலைப்பதிவு
நல்லது, கன்சோலில் எனது ஸ்கிரிப்டுகள் மற்றும் பயிற்சிகளின் ஆயுதக் களஞ்சியத்தில் சேமிக்கப்பட்டது! உங்கள் கூட்டாளருக்கு +1 ...
வணக்கம், இந்த பிரச்சினை தொடர்பாக வலையில் உள்ள எல்லாவற்றிற்கும் பல வாழ்த்துக்கள், தீர்வுக்கு உன்னுடையது. ஒரு சிறிய சந்தேகம், நான் ஏன் இயங்கக்கூடியதாக இல்லை ??
கோமலர் நேரத்தில் அது எந்த பிழையும் குறிக்கவில்லை, ஆனால் அது ./ser4 ஐ உருவாக்காது
ஃபெடோராவில் அதை எப்படி செய்வது என்று ஏதாவது யோசனை?
தகவலைப் பகிர்வதில் நான் உடன்படவில்லை, ஆனால் இந்த எடுத்துக்காட்டு 2011 முதல் என்னால் செய்யப்பட்டதிலிருந்து பதிப்புரிமை வைக்கப்படவில்லை என்றால், அசல் மூலத்தின் முகவரி இங்கே
http://hugo4295.blogspot.mx/search?q=MYSQL
எந்த பிரச்சனையும் இல்லை விக்டர், ஆனால் நீங்கள் கவனித்தால் நான் உங்கள் தளத்திலிருந்து கட்டுரையை எடுக்கவில்லை, ஆனால் துரதிர்ஷ்டவசமாக அவர்கள் மூலத்தை வைக்கவில்லை. இருப்பினும், இப்போது நான் கட்டுரையைத் திருத்துகிறேன் ..
சிறந்த பகிர்வு அறிவு சிறந்த சுதந்திரம்
மேலும் செருகல்களை எவ்வாறு செய்ய முடியும் ???