Β Β return 0;Β } else {Β res_ptr = mysql_use_result(&my_connection);Β Β if (res_ptr) {Β Β if ((mysqlrow = mysql_fetch_row(res_ptr))) {Β Β Β sscanf(mysqlrow[0], "%d", &new_cd_id);Β Β }Β Β mysql_free_result(res_ptr);Β }He ΡΡΠΎΠΈΡ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ -ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ , Π²ΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΈ Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΈ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ID; Π‘Π£Π ΠΠ MySQL Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΉ ID Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°Π²ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Π²Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ ID, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅, Π° Π½Π΅ ΡΡΡΠΎΠΊΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΏΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ID Π²Π½ΠΎΠ²Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ΄ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ:
Β *cd_id = new_cd_id;Β if (new_cd_id != -1) return 1;Β Β return 0;Β }} /* add_cd */Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
get_artist_id/* ΠΠΎΠΈΡΠΊ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ artist_id Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ */static int get_artist_id(char *artist) {Β MYSQL_RES *res_ptr;Β MYSQL_ROW mysqlrow;Β int res;Β char qs[250];Β char is[250];Β char es[250];Β int artist_id = -1;Β /* ΠΠ½ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ? */Β mysql_escape string(es, artist, strlen(artist));Β sprintf(qs, "SELECT id FROM artist WHERE name = '%s'", es);Β res = mysql_query(&my_connection, qs);Β if (res) {Β fprintf(stderr, "SELECT error: %s\n", mysql_error(&my_connection));Β } else {Β res_ptr = mysql_store_result(&my_connection);Β Β if (res_ptr) {Β Β if (mysqr_num_rows(res_ptr) > 0) {Β Β Β if (mysqlrow = mysql_fetch_row(res_ptr)) {Β Β Β sscanf(mysqlrow[0], "%d", &artist_id);Β Β Β }Β Β }Β Β Β mysql_free_result(res_ptr);Β Β }Β }Β if (artist_id != -1) return artist_id;Β sprintf(is, "INSERT INTO artist(name) VALUES ('%s')", es);Β res = mysql_query(&my_connection, is);Β if (res) {Β fprintf(stderr, "Insert error %d: %s\n",Β Β mysql_errno(&my_connection), mysql_error(&my_connection));Β Β return 0;Β }Β res = mysql_query(&my_connection, "SELECT LAST_INSERT_ID()");Β if (res) {Β printf("SELECT error: %s\n", mysql_error(&my_connection));Β Β return 0;Β } else {Β res_ptr = mysql_use_result(&my_connection);Β Β if (res_ptr) {Β Β if ((mysqlrow = mysql_fetch_row(res_ptr))) {Β Β Β sscanf(mysqlrow[0], "%d", &artist_id);Β Β }Β Β mysql_free_result(res_ptr);Β }Β }Β return artist_id;} /* get_artist_id */ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ Π²ΡΡΠ°Π²ΠΊΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°. Π ΡΠ½ΠΎΠ²Π° Π·Π°ΡΠΈΡΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π½Π°Π·Π²Π°Π½ΠΈΡΡ Π΄ΠΎΡΠΎΠΆΠ΅ΠΊ:
int add_tracks(struct current_tracks_st *tracks) {Β int res;Β char is[250];Β char es[250];Β int i;Β if (!dbconnected) return 0;Β i = 0;Β while (tracks->track[i][0]) {Β mysql_escape_string(es, tracks->track[i], strlen(tracks->track[i]));Β Β sprintf(is,Β Β "INSERT INTO track(cd_id, track_id, title) VALUES(%d, %d, '%s')",Β Β tracks->cd_id, i + 1, es);Β Β res = mysql_query(&my_connection, is);Β if (res) {Β Β fprintf(stderr, "Insert error %d: %s\n",Β Β mysql_errno(&my_connection), mysql_error(&my_connection));Β Β return 0;Β }Β i++;Β }Β return 1;} /* add tracks */Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ID. ΠΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ID ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ID Π΄ΠΈΡΠΊΠ°. ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π‘Π£Π ΠΠ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅ΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ·ΡΠΊΠ΅ SQL. ΠΡΡΡ ΡΠ°Π½Ρ ΡΠ±Π΅ΡΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠ»Ρ, Π½Π΅ ΡΡΠ°ΡΡ ΠΈΡ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ°Π·ΡΠ΅ΡΠΈΠ² Π‘Π£Π ΠΠ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ.