|
|
��� �������� �������� �� ��������� ������: English Castellano ChineseGB Deutsch Francais Nederlands Portugues Russian Turkce Polish |
����� Özcan Güngör <ozcangungor(at)netscape.net> �� ������: � ��������� Linux � 1997 �. �������, ��������������� � �������� ��� - ��� ������ �� ��������, ������� ��� ��������. ������� �� �������: Pukhlyakov Kirill <kirill(at)linuxfocus.org> ����������: |
MySQL C API������: � ���� ������� � �������� ��� ������������ C API, ������������ � MySQL. ����� ������ � ��� ���� ���� � �������, ���������� ��������� ������:
|
MYSQL
��� ��������� ������������ ��� ����������� � ����.
typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for SSL */ char *host,*user,*passwd,*unix_socket, *server_version,*host_info,*info,*db; unsigned int port,client_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned long thread_id; /* Id for connection in server */ my_ulonglong affected_rows; my_ulonglong insert_id; /* id if insert on table with NEXTNR */ my_ulonglong extra_info; /* Used by mysqlshow */ unsigned long packet_length; enum mysql_status status; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_bool free_me; /* If free in mysql_close */ my_bool reconnect; /* set to 1 if automatic reconnect */ struct st_mysql_options options; char scramble_buff[9]; struct charset_info_st *charset; unsigned int server_language; } MYSQL;
MYSQL_RES
��� ��������� ������������ ���������� �������, ���������� ������ ��������.
������������ ������ ���������� result-set.
typedef struct st_mysql_res { my_ulonglong row_count; unsigned int field_count, current_field; MYSQL_FIELD *fields; MYSQL_DATA *data; MYSQL_ROWS *data_cursor; MEM_ROOT field_alloc; MYSQL_ROW row; /* If unbuffered read */ MYSQL_ROW current_row; /* buffer to current row */ unsigned long *lengths; /* column lengths of current row */ MYSQL *handle; /* for unbuffered reads */ my_bool eof; /* Used my mysql_fetch_row */ } MYSQL_RES;
MYSQL_ROW
��� ��� ���� ��������� ��� ������������� ������. �� �� �� ������
������������ �� ��� ������, ��������������� ������� ��������, ������, ��� ������ ����� ����
�������� � ����� ��������� ���� ������.
typedef struct st_mysql_field { char *name; /* Name of column */ char *table; /* Table of column if column was a field */ char *def; /* Default value (set by mysql_list_fields) */ enum enum_field_types type; /* Type of field. Se mysql_com.h for types */ unsigned int length; /* Width of column */ unsigned int max_length; /* Max width of selected set */ unsigned int flags; /* Div flags */ unsigned int decimals; /* Number of decimals in field */ } MYSQL_FIELD;
my_ulonglong
���� ��� ������������ ��� ����� ������� � ������� ���: ����������
����� mysql_affected_rows(), mysql_num_rows(), � mysql_insert_id(). �������� ����� ����:
�� 0 �� 1.84e19. � ��������� �������� �� �� ������� ������� �������� ����� ���� ( my_ulonglong ),
����� ������� ��� ��� �������� �������� ��� �������� � ���� unsigned long � ������������
������ %lu ������� printf.
��������:
printf(���������� �����: %lu\n", (unsigned long) mysql_num_rows(result));
typedef unsigned long my_ulonglong;
��� �� ��� ������, MySQL ������� ��������� � ���������� mysqlclient. �������, ��� ���������� ����������, ����������������� � MySQL, ���������� �������� ����� -lmysqlclient. ������������ ����� MySQL ��������� � �������� /usr/include/mysql ( ������� ������� �� ������ ������������ Linux ). ��������� ������ ���������� ������ ��������� ��������� �������:
#include <mysql/mysql.h>
������� � ���������� MySQL ���������� � ���� ������������ �����.
�����, ���������� ������� ���������� ��� ����������� � ���� ������. ��� ���������� ������ � �������� ��������� �������:
MYSQL *mysql;
����� ���������������� ������������ � ���� ������ ���������� ������� ��������� ������� ��� ������������� ���������� mysql:
mysql_init(MYSQL *mysql)
����� ���������� �������
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int clientflag);
��� �����������. host - ��� ���������� � ���������� �������� MySQL, user - ������������, ������� �� ����� ������������, passwd - ������, db - ���� ������, � ������� �� ����� ������������, port - ����� TCP/IP �����, unix_socket - ��� ����������, clientflag - ����, ����������� MySQL �������� ������� ODBC. � ������ ������� ��� ����� ��������� ��������� �������� 0. ��� ������� ���������� 0 � ������ ��������� ����������.
������ �� ����� ������������ � ���� ������ � ��������� ������:
char *query;
��������� ��� ������ �� ����� ������� ����� SQL ������. ������� ��� ���������� �������:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned int length);mysql - ����������, ������� �� �������, q - ������ SQL �������, length - ����� ���� ������. ���� ������ ������ ������� - ������� ���������� 0.
����� ���������� ������� ��� ����������� ���������� ���� MYSQL_RES, ����� �� ����� ������������ ��� ����������in. ��� ���������� ��������� ��������� �������:
MYSQL_RES *res;�����
mysql_use_result(MYSQL *query)��� ������� ������������ ��� ������ �����������.
����� �� ����� ������������ ������� ����� ������� ��������, �� ��� ����� ��� ����� ������ �������. ������ �� ���:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);��� ������� ����������� ��������� � ������. ��� �� ��������, ������� ���������� ��������� � ������� ���������� ���� MYSQL_ROW. ��� ���������� ��������� ��������� �������:
MYSQL_ROW row;��� �� ��� ������� ���������� row ��� ������ �����. ��� ������, ��� row[0] ������ ������� ������ ������, row[1] - ������ ������� ������ ������... ������� mysql_fetch_row ���������� ��������� ������ ����������, ���� ������ ������ ��� - ������������ ������������� ��������. ����� ��������� ������ �� ������ ������� ����������:
mysql_close(MYSQL *mysql)
unsigned int STDCALL mysql_num_fields(MYSQL *mysql);
����� ������ ���������� ����� ���������� ������� �����������:
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res);
my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql);
��� ������� ���������� ���������� ����� ��� ������������� SQL �������� INSERT, DELETE, UPDATE. �������� ��������, ��� ������������ ��������� ����� ��� my_ulonglong.� ������� ������ ����:
#include <mysql/mysql.h> #include <stdio.h> void main(){ MYSQL *mysql; MYSQL_RES *res; MYSQL_ROW row; char *query; int t,r; mysql_init(mysql); if (!mysql_real_connect(mysql,"localhost","mysql", "mysql","deneme",0,NULL,0)) { printf( "Error connecting to database: %s\n",mysql_error(mysql)); } else printf("Connected...\n"); query="select * from Deneme"; t=mysql_real_query(mysql,query,(unsigned int) strlen(query)); if (t) { printf("Error making query: %s\n", mysql_error(mysql)); } else printf("Query made...\n"); res=mysql_use_result(mysql); for(r=0;r<=mysql_field_count(mysql);r++){ row=mysql_fetch_row(res); if(row<0) break; for(t=0;t<mysql_num_fields(res);t++){ printf("%s ",row[t]); } printf("\n"); } mysql_close(mysql); }
|
Webpages maintained by the LinuxFocus Editor team
© Özcan Güngör, FDL LinuxFocus.org |
Translation information:
|
2003-09-02, generated by lfparser version 2.42