MySQL & mSQL



              

Два API - часть 4


/* опять-таки, -1 указывает на ошибку */

if( state == -1 )

{

printf(msqlErrMsg);

/* закрыть соединение перед выходом */

msqlClose(connection);

return 1; }

state = msqlQuery(connection, "SELECT test_id, test_val FROM test");

if( state == -1 )

{

printf(msqlErrMsg);

return 1;

}

else

{

printf("Строк: %d\n", state);

}

/* прежде чем делать новый вызов Query(),

* необходимо вызвать msqlStoreResult()

*/

result = msqlStoreResult();

/* обработать каждую строку результирующего набора */

while( ( row = msqlFetchRow(result)) != NULL )

{

printf("id: %s, значение: %s\n",

(row[0] ? row[0] : "NULL"),

(row[1] ? row[1] : "NULL"));

}

/* освободить ресурсы, использовавшиеся результирующим набором */

msqlFreeResult(result); /* закрыть соединение */

msqlClose(connect ion);

printf("Конец работы.\n"); }

Эти программы почти идентичны. Кроме разных имен функций, есть лишь несколько заметных отличий. Сильнее всего бросается в глаза различие в соединении с базой данных, которое проявляется в двух отношениях:

  • В MySQL соединение осуществляется за один шаг, а в mSQL - за два.*

  • Для MySQL требуются имя пользователя и пароль, а для mSQL -нет.

    Как указывалось ранее в этой книге, MySQL поддерживает сложную схему авторизации с именами пользователей и паролями. Напротив, в mSQL применяется простая система, использующая ID пользователя процесса, соединяющегося с базой данных. Более надежная схема MySQL гораздо привлекательнее в среде клиент/сервер, но также и значительно более сложна в администрировании. Для разработчиков приложений она означает необходимость передачи в вызове mysql_real_connect() имени пользователя и пароля при работе с MySQL помимо имени сервера, используемого в mSQL.

    Первый аргумент API для установления соединения с MySQL может показаться необычным. По сути, это способ отслеживать все вызовы, иначе никак не связанные с соединением. Например, если вы пытаетесь установить соединение, и попытка неудачна, вам нужно получить сообщение о соответствующей ошибке. Однако функция MySQL




    Содержание  Назад  Вперед