Commonly used linux C API
MYSQL *conn = mysql_init(void); //Initialize mysql and return mysql handle
//iferr(!conn)
conn = mysql_real_connect(conn, "localhost"Or server IP, User name, password, database databaseļ¼0, NULL, 0);
//iferr (!conn)
int res = mysql_real_quary(conn, (char *)cmd, len); //Send a mysql request, @cmd is a mysql command statement, see the following commonly used mysql statement for details, @len is the length of @cmd
//iferr (res)
//Open automatic reconnection
char value = 1;
mysql_options(conn, MYSQL_OPT_RECONNECT, &value);
MYSQL_RES *res = mysql_store_result(conn); //Download offline result sets
//iferr(!res)
r = mysql_num_rows(res); //Get rows
c = mysql_num_fields(res); //Column Number (Element Number)
while ((r = mysql_fetch_field(res))) //Traversing each row
{
//r[0], r[1]... is the first and second element value of each line.
//do somthing...
}
mysql_free_result(res); //Release result set
mysql_close(conn); //Close connection
mysql_error(conn); //Error strings
mysql_errno(conn); //error code
//The following is a multi-threaded access to mysql related functions. See the following multi-threaded routine for detailed usage
mysql_library_init(0, NULL, NULL); //Initialize mysql client (multithreaded security)
mysql_library_end(); //
mysql_thread_init(); //Initialize thread-specific variables
mysql_thread_end(); //
Multithread related routines
void *thread(void *arg)
{
mysql_thread_init(); //Calls must be made as early as possible within the thread created
MYSQL *conn = mysql_init();
//iferr(!conn)
conn = mysql_real_connect(conn, "localhost", "user", "passwd", "database", 0, NULL, 0);
//iferr(!conn)
//do somthing...
mysql_close(conn);
mysql_thread_end(); //Call before thread launch to avoid memory leak
}
int main()
{
//This function must be invoked in a multithreaded environment before any thread is created and any mysql operation is performed
if (mysql_library_init(0, NULL, NULL))
{
//err
}
//do somthing...
pthread_t t;
pthread_create(&t, NULL, thread, NULL);
//do somthing...
mysql_library_end(); //Release resources before the end of the program to avoid memory leaks
return 0;
}
Common mysql statements
- select * from table name // Get all data in the table
- select element name from table name // Get all the elements in the table
- select element name from table name where count=1 // Gets all the elements in the table that satisfy the expression count=1
- delete from table name where expression // delete elements satisfying expression in table
- insert into table name values (values, values)// insert a data into the table, with each element value in parentheses
- truncate table name // empty table
- Create table table table name (element name type (length), element name type (length)//create table
- drop table table table name // delete table
- The load data infile file name ignore into table table table table table name fields terminated by'-'// imports the file into the database, where ignore means ignore the unique key value that encounters duplication, which can be replaced by replace means replace the unique key value that encounters duplication, and skip the following data if neither of them is selected. Fields terminated by'-'means to segment elements in a file with'-' characters.
Problems encountered
Start mysql service to report errors
Error: Failed to start mysql.service: Unit mysql.service is masked
Command line execution statement: system CTL unmask mysql. service
Import file error reporting
Execute on the mysql command line: show variables like'% secure_file_priv%'
View the value. If the value is a path, the imported file must be in that path before it can be imported.
If you want to modify the path or value NULL, you need to make the following modifications
Add my.cnf file at / etc /
[mysqld] secure_file_prev=
The path of the specified import file can be written after the equal sign, and the import file can be in any path if it is not specified as shown above.
At present, only these have been used, not related to the opportunity to update from time to time in the future.