ជាមួយនឹងការបង្រៀននេះខ្ញុំធ្វើបទបង្ហាញដល់សហគមន៍អំពីវិធីចូលប្រើឃ្លាំងទិន្នន័យ MySQL ពីភាសាសរសេរកម្មវិធី C និងដោយមិនប្រើភាពអាស្រ័យច្រើនពេកដោយគ្រាន់តែ
libmysqlclient
ខ្ញុំសង្ឃឹមថាវាមានប្រយោជន៍សម្រាប់អ្នកដែលត្រូវការឯកសារប្រភេទនេះហើយដូច្នេះបន្តចូលរួមចំណែកដល់សហគមន៍អេសអិលហើយជួយអ្នកដែលមិនមានអ៊ិនធឺណេត។
ការកំណត់រចនាសម្ព័ន្ធ
ដំបូងយើងត្រូវពិនិត្យមើលថាយើងបានតំឡើងបណ្ណាល័យរចនា *-dev
ដើម្បីអាចចូលដំណើរការពី C / C ++ ទៅ MySQL ។
mysql_config -លីប
វាគួរតែលេចឡើងអ្វីមួយដូចនេះ៖
-Wl, -Bsymbolic- មុខងារ –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 យើងបន្តទៅការបង្កើតប្រព័ន្ធទិន្នន័យ៖
បង្កើតតេស្ត DATABASE; តេស្ត USE; បង្កើតទិន្នន័យតារាង (លេខសំងាត់ int AUTO_INCREMENT NULL NIM PRIMARY, ឈ្មោះ varchar (40), អាយុ int); បញ្ចូលទិន្នន័យ VALUES (NULL, 'អាលម៉ា Hernandez', ២៨), (NULL, 'Jose Sanchez', ៣៩), (NULL, 'Martin loera', ២៥), (NULL, 'Leonardo Cortez', ២៦), (NULL , 'Gustavo Romero', ២៥);
ការសរសេរកម្មវិធីនិងការចងក្រង
យើងបន្តបង្កើតលេខកូដ៖
Query.c
/ * បណ្ណាល័យត្រូវប្រើ * / # រាប់បញ្ចូល បណ្ណាល័យ * ដែលអនុញ្ញាតឱ្យយើងប្រើការតភ្ជាប់និងសំណួរជាមួយ MySQL * / # រាប់បញ្ចូល / * ដើម្បីប្រើ printf ។ ល។ * / int មេ () {MYSQL * conn; / * ការតភ្ជាប់អថេរសម្រាប់ MySQL * / MYSQL_RES * res; អថេរ / * ដែលនឹងមានលទ្ធផលនៃសំណួរ * / MYSQL_ROW ជួរដេក; អថេរ / * ដែលនឹងមានវាលសម្រាប់កំណត់ត្រានីមួយៗដែលបានពិគ្រោះ * / char * server = "localhost"; / * អាស័យដ្ឋានម៉ាស៊ីនមេ 127.0.0.1, localhost ឬ ip address * / char * user = "root"; / * អ្នកប្រើដើម្បីសាកសួរមូលដ្ឋានទិន្នន័យ * / char * password = "root"; / * ពាក្យសម្ងាត់សម្រាប់អ្នកប្រើប្រាស់ក្នុងសំណួរ * / char * មូលដ្ឋានទិន្នន័យ = "សាកល្បង"; / * ឈ្មោះនៃមូលដ្ឋានទិន្នន័យដើម្បីសាកសួរ * / conn = mysql_init (NULL); / * ការចាប់ផ្តើមលុបចោលការតភ្ជាប់ * / / * ភ្ជាប់ទៅនឹងឃ្លាំងទិន្នន័យ * / ប្រសិនបើ (! mysql_real_connect (conn, server, អ្នកប្រើប្រាស់, password, database, 0, NULL, 0)) {/ * កំណត់ប៉ារ៉ាម៉ែត្រតភ្ជាប់ដែលបានកំណត់ពីមុន * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * ប្រសិនបើមានកំហុសកំណត់ថាតើកំហុសមួយណាគឺ * / ចេញ (១); } / * ផ្ញើសំណួរ SQL * / ប្រសិនបើ (mysql_query (conn ជ្រើសរើស "ពីទិន្នន័យ")) {/ * និយមន័យនៃសំណួរនិងប្រភពដើមនៃការតភ្ជាប់ * / fprintf (stderr, "% s \ n", mysql_error ( conn)); ចេញ (1); } res = mysql_use_result (conn); printf("អត្តសញ្ញាណ \ t ឈ្មោះ" \ t \ អាយុ \ n "); ខណៈពេល ((ជួរដេក = 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)
ការផ្ទៀងផ្ទាត់
យើងប្រតិបត្តិ
./Query
ប្រភព: ប្លក់របស់ហ្គូហ្គោ ៤២៩៥
៥៧ យោបល់ទុកអ្នក
ល្អដែលបានរក្សាទុកនៅក្នុងឃ្លាំងនៃស្គ្រីបនិងការបង្រៀនរបស់ខ្ញុំនៅលើកុងសូល! +1 សម្រាប់អ្នកដៃគូ ...
សួស្តីសូមអបអរសាទរចំពោះអ្វីៗទាំងអស់ដែលមាននៅលើអ៊ីនធឺណិតទាក់ទងនឹងបញ្ហានេះអ្នកគឺជាអ្នកដែលជិតបំផុតនឹងដំណោះស្រាយ។ គ្រាន់តែមានការសង្ស័យបន្តិចបន្តួចហេតុអ្វីខ្ញុំមិនអាចអនុវត្តបាន ??
នៅពេលcomílarវាមិនសម្គាល់កំហុសទេប៉ុន្តែវាមិនបង្កើត ./ser4 ទេ
គំនិតណាមួយពីរបៀបធ្វើវានៅ Fedora?
ខ្ញុំមិនយល់ស្របនឹងការចែករំលែកព័ត៌មានទេប៉ុន្តែប្រសិនបើការរក្សាសិទ្ធិមិនត្រូវបានដាក់ចាប់តាំងពីឧទាហរណ៍នេះត្រូវបានបង្កើតឡើងដោយខ្ញុំតាំងពីឆ្នាំ ២០១១ ហើយនេះគឺជាអាស័យដ្ឋាននៃប្រភពដើម
http://hugo4295.blogspot.mx/search?q=MYSQL
មិនមានបញ្ហាអ្វីទេ Victor ប៉ុន្តែប្រសិនបើអ្នកកត់សម្គាល់ខ្ញុំមិនបានយកអត្ថបទពីគេហទំព័ររបស់អ្នកទេប៉ុន្តែមកពីកន្លែងផ្សេងទៀតដែលជាអកុសលពួកគេមិនបានដាក់ប្រភព។ ទោះយ៉ាងណាឥឡូវខ្ញុំកែសម្រួលអត្ថបទ .. 😉
ចែករំលែកចំណេះដឹងដ៏អស្ចារ្យសេរីភាពដ៏អស្ចារ្យ
ហើយតើអាចបញ្ចូលសិលាចារឹកយ៉ាងដូចម្តេច ???