Два API - часть 2
/p>
mysql_real_query() |
|
mysql_reload() |
|
mysql_select_db() |
msqlSelectDB() |
mysql_shutdown() |
|
mysql_stat() |
|
mysql_store_result() |
msqiStoreResult() |
mysql_use_result() |
|
API для MySQL значительно обширнее, чем API для mSQL, ввиду большего числа функций в MySQL. Во многих случаях MySQL фактически только обеспечивает программный интерфейс к функциям администрирования баз данных, которые имеются в той и другой СУБД. Просто изучив названия функций, можно прийти к выводу, что любое разрабатываемое вами приложение баз данных должно, как минимум, делать следующее:
В примере 13-1 показана простая команда select, извлекающая данные из базы данных MySQL с помощью MySQL С API.
Пример 13-1. Простая программа, извлекающая все данные из тестовой базы и отображающая их
#include <sys/time. h>
#include <stdio.h>
#include <mysql.h>
int main(char **args) {
MYSQL_RES 'result;
MYSQL_ROW row;
MYSQL 'connection, mysql;
int state;
/* соединиться с базой данных mySQL на athens.imaginary.com */
mysql_init(&mysql);
connection = mysql_real_connect(&mysql,
"alMens.imaginary.com",
0, 0,
"db_test", 0, 0);
/* проверить ошибки соединения */
if( connection == NULL ) {
/* вывести сообщение об ошибке */
printf(mysql_error(&mysql));
return 1;
}
state = mysql_query(connection,
"SELECT test_id, test_val FROM test");
if( state != 0 ) {
printf(mysql_error(connection));
return 1; }
/* прежде чем делать другие вызовы,
* необходимо вызвать mysql_store_result()
*/
result = mysql_store_result(connection);
printf("Строк: %d\n", mysql_num_rows(result));
/* обработать каждую строку результирующего набора */
while( ( row = mysql_fetch_row(result)) != NULL )
{
printf("id: %s, значение: %s\n", (row[0] ? row[0] : "NULL"), (row[1] ? row[1] : "NULL")); }