C API��������MySQL�ַ��ģ�����������mysqlclient
��������C������ȡһ�����ݿ⡣
�� MySQLԴ�����ַ��еĺܶ��ͻ�����C��д�ġ�����������Ѱ����ʾ����ʹ��C API�����ӣ���һ����Щ�ͻ�������
�����������ͻ� API(����Java������)��ʹ��mysqlclient
����MySQL������ͨ�š�����ζ�ţ����磬�������úܶ౻�����ͻ�����ʹ�õ�ͬһ������������Ϊ���Ǵӿ������á�����Щ������һ�ű�����12.1 ��ͬ��MySQL�����ĸ�����
�ͻ���һ������ͨѶ��������С����ʼ�����Ļ�������С(16K�ֽ�) �Զ������ӵ������ߴ�(ȱʡ������ֵ��24M)����Ϊ��������Сֻ�ǰ���֤�����������ӣ�������ȱʡ���������Ʋ������ɸ��౻���ġ��óߴ�������Ҫ��һ���Դ����IJ�ѯ��ͨѶ���ļ��顣
ͨѶ�����������㹻���Ա�һ��������SQL����(�Կͻ�-����������)��һ�з��ص�����(�Է�����-�ͻ�����)��ÿ���̵߳�ͨѶ����������̬���������������������κβ�ѯ���С����磬��������������16M���ݵ�BLOB
ֵ����������һ������16MͨѶ����������(�ڷ������Ϳͻ�����)���ͻ���ȱʡ����ֵ��24M�������ڷ������˵�ȱʡ����ֵ��1M���������ڷ���������ʱͨ���ı�max_allowed_packet
������ֵ���ı�������10.2.3 ���ڷ�����������
MySQL��������ÿ����ѯ����Сÿ��ͨѶ��������net_buffer_length
���ֽڡ��Կͻ�����һ���������صĻ������Ĵ�Сû�����٣�ֱ�����ӱ��رգ��ڴ�ʱ�ͻ��ڴ汻���ա�
���������̵߳ı��̣���Ӧ����--with-thread-safe-client
����MySQL
C API���⽫ʹC API�̶߳�ÿ�����Ӹ���ȫ����������2���̹߳�����ͬ�����ӣ�ֻҪ���������������飺
mysql_query()
��mysql_store_result()
֮��û�������߳�����ʹ��ͬһ�����ӡ�
mysql_store_result()
���������IJ�ͬ�������ϡ�mysql_use_result
�������뱣֤û�������߳���ͬһ������������ѯ���κζ�����ֱ���������ϱ��رա�
MYSQL
MYSQL_RES
SELECT
, SHOW
, DESCRIBE
,
EXPLAIN
)�Ľ������Ӳ�ѯ���ص���Ϣ�ڱ������ij�Ϊ����������MYSQL_ROW
mysql_fetch_row()
���á� MYSQL_FIELD
mysql_fetch_field()
��ÿһ�л���MYSQL_FIELD
�ṹ���ֶ�ֵ���������ṹ�IJ��֣����DZ�������һ��MYSQL_ROW
�ṹ�С�MYSQL_FIELD_OFFSET
mysql_field_seek()
ʹ�á�)
ƫ��������һ�����ڵ��ֶα��ţ���0��ʼ�� my_ulonglong
mysql_affected_rows()
��mysql_num_rows()
��mysql_insert_id()
�����������ṩ0
��1.84e19
��һ����Χ����һЩϵͳ�ϣ���ͼ��ӡ����my_ulonglong
��ֵ����������Ϊ�˴�ӡ��������ֵ�������任��unsigned
long
����ʹ��һ��%lu
��ӡ��ʽ�����磺printf (Number of rows: %lu\n", (unsigned long) mysql_num_rows(result));
MYSQL_FIELD
�ṹ�������������ij�Ա��
char * name
char * table
table
ֵ��һ�����ַ�����char * def
mysql_list_fields()
�ſ���������enum enum_field_types type
type
ֵ����������֮һ������ֵ | ���ͺ��� |
FIELD_TYPE_TINY |
TINYINT �ֶ� |
FIELD_TYPE_SHORT |
SMALLINT �ֶ� |
FIELD_TYPE_LONG |
INTEGER �ֶ� |
FIELD_TYPE_INT24 |
MEDIUMINT �ֶ� |
FIELD_TYPE_LONGLONG |
BIGINT �ֶ� |
FIELD_TYPE_DECIMAL |
DECIMAL ��NUMERIC �ֶ� |
FIELD_TYPE_FLOAT |
FLOAT �ֶ� |
FIELD_TYPE_DOUBLE |
DOUBLE ��REAL �ֶ� |
FIELD_TYPE_TIMESTAMP |
TIMESTAMP �ֶ� |
FIELD_TYPE_DATE |
DATE �ֶ� |
FIELD_TYPE_TIME |
TIME �ֶ� |
FIELD_TYPE_DATETIME |
DATETIME �ֶ� |
FIELD_TYPE_YEAR |
YEAR �ֶ� |
FIELD_TYPE_STRING |
�ַ���(CHAR ��VARCHAR )�ֶ� |
FIELD_TYPE_BLOB |
BLOB ��TEXT �ֶ�(ʹ��max_length �������ȣ� |
FIELD_TYPE_SET |
SET �ֶ� |
FIELD_TYPE_ENUM |
ENUM �ֶ� |
FIELD_TYPE_NULL |
NULL - �����ֶ� |
FIELD_TYPE_CHAR |
���Ƽ���ʹ��FIELD_TYPE_TINY ���� |
������ʹ��IS_NUM()
���������ֶ��Ƿ���һ���������͡���type
ֵ����IS_NUM()
���������ֶ������ֵģ���������ΪTRUE��
if (IS_NUM(field->type)) printf("Field is numeric\n");
unsigned int length
unsigned int max_length
mysql_store_result()
��mysql_list_fields()
���������ֶ����ȡ�������ʹ��mysql_use_result()
������������ֵ���㡣unsigned int flags
flags
ֵ��������������������λ���ã���־ֵ | ��־���� |
NOT_NULL_FLAG |
�ֶβ�����NULL |
PRI_KEY_FLAG |
�ֶ���һ��������һ���� |
UNIQUE_KEY_FLAG |
�ֶ���һ��Ψһ����һ���� |
MULTIPLE_KEY_FLAG |
�ֶ���һ����Ψһ����һ���֡� |
UNSIGNED_FLAG |
�ֶ���UNSIGNED ���� |
ZEROFILL_FLAG |
�ֶ���ZEROFILL ���� |
BINARY_FLAG |
�ֶ���BINARY ���� |
AUTO_INCREMENT_FLAG |
�ֶ���AUTO_INCREMENT ���� |
ENUM_FLAG |
�ֶ���һ��ENUM �����Ƽ��� |
BLOB_FLAG |
�ֶ���һ��BLOB ��TEXT �����Ƽ��� |
TIMESTAMP_FLAG |
�ֶ���һ��TIMESTAMP �����Ƽ��� |
BLOB_FLAG
��ENUM_FLAG
��TIMESTAMP_FLAG
��־��ʹ���Dz��Ƽ��ģ���Ϊ����ָ���ֶε����Ͷ��������������ԡ���FIELD_TYPE_BLOB
��FIELD_TYPE_ENUM
��FIELD_TYPE_TIMESTAMP
�������Dz���field->type
������������ʾ��һ�����͵�flags
ֵ�÷���
if (field->flags & NOT_NULL_FLAG) printf("Field can't be null\n");
������ʹ�����з����ĺ�����ȷ��flags
ֵ�IJ���״̬��
IS_NOT_NULL(flags) |
�棬�������ֶα�����ΪNOT NULL |
IS_PRI_KEY(flags) |
�棬�������ֶ���һ������ |
IS_BLOB(flags) |
�棬�������ֶ���һ��BLOB ��TEXT �����Ƽ����෴����field->type �� |
unsigned int decimals
�� C API �п��õĺ����������棬��������һ�ڸ���ϸ����������20.4 C API����������
mysql_affected_rows() | ���ر����µ�UPDATE , DELETE ��INSERT ��ѯӰ���������� |
mysql_close() | �ر�һ�����������ӡ� |
mysql_connect() | ����һ��MySQL���������ú������Ƽ���ʹ��mysql_real_connect() ���档
|
mysql_change_user() | �ı���һ���������ϵ��û������ݿ⡣ |
mysql_create_db() | ����һ�����ݿ⡣�ú������Ƽ�����ʹ��SQL����CREATE DATABASE �� |
mysql_data_seek() | ��һ����ѯ������������Ѱһ�����С� |
mysql_debug() | �ø����ַ�����һ��DBUG_PUSH �� |
mysql_drop_db() | ����һ�����ݿ⡣�ú������Ƽ�����ʹ��SQL����DROP DATABASE ��
|
mysql_dump_debug_info() | �÷�������������Ϣд����־�ļ��� |
mysql_eof() | ȷ���Ƿ��Ѿ�����һ���������ϵ�����һ�С���ܱ�����; mysql_errno() ��mysql_error() �����෴��ʹ�á�
|
mysql_errno() | �������������õ�MySQL�����ij������š� |
mysql_error() | �������������õ�MySQL�����ij�����Ϣ�� |
mysql_escape_string() | ����SQL�����е��ַ�����ת�������ַ��� |
mysql_fetch_field() | ������һ�����ֶε����͡� |
mysql_fetch_field_direct () | ����һ�����ֶε����ͣ�����һ���ֶα��š� |
mysql_fetch_fields() | ����һ�������ֶνṹ�����顣 |
mysql_fetch_lengths() | ���ص�ǰ���������еij��ȡ� |
mysql_fetch_row() | �ӽ���������ȡ����һ�С� |
mysql_field_seek() | ���й�������һ��ָ�������ϡ� |
mysql_field_count() | ����������ѯ�Ľ����е������� |
mysql_field_tell() | ������������һ��mysql_fetch_field() ���ֶι�����λ�á� |
mysql_free_result() | �ͷ�һ����������ʹ�õ��ڴ档 |
mysql_get_client_info() | ���ؿͻ��汾��Ϣ�� |
mysql_get_host_info() | ����һ���������ӵ��ַ����� |
mysql_get_proto_info() | ��������ʹ�õ�Э���汾�� |
mysql_get_server_info() | ���ط������汾�š� |
mysql_info() | ���ع�������ִ�еò�ѯ����Ϣ�� |
mysql_init() | ���û���ʼ��һ��MYSQL �ṹ�� |
mysql_insert_id() | ������ǰһ����ѯΪһ��AUTO_INCREMENT �����ɵ�ID�� |
mysql_kill() | ɱ��һ���������̡߳� |
mysql_list_dbs() | ����ƥ��һ������������ʽ�����ݿ����� |
mysql_list_fields() | ����ƥ��һ������������ʽ�������� |
mysql_list_processes() | ���ص�ǰ�������̵߳�һ�ű��� |
mysql_list_tables() | ����ƥ��һ������������ʽ�ı����� |
mysql_num_fields() | ����һ�����������ص��е������� |
mysql_num_rows() | ����һ�����������е��е������� |
mysql_options() | ���ö�mysql_connect() ������ѡ� |
mysql_ping() | �����Է������������Ƿ����ڹ�������Ҫʱ�������ӡ� |
mysql_query() | ִ��ָ��Ϊһ���ս�β���ַ�����SQL��ѯ�� |
mysql_real_connect() | ����һ��MySQL�������� |
mysql_real_query() | ִ��ָ��Ϊ���������ַ�����SQL��ѯ�� |
mysql_reload() | ���߷�������װ��Ȩ���� |
mysql_row_seek() | �����ڽ��������е��У�ʹ�ô�mysql_row_tell() ���ص�ֵ��
|
mysql_row_tell() | �����й���λ�á� |
mysql_select_db() | ����һ�����ݿ⡣ |
mysql_shutdown() | �ص����ݿ��������� |
mysql_stat() | ������Ϊ�ַ����ķ�����״̬�� |
mysql_store_result() | ����һ�������Ľ������ϸ��ͻ��� |
mysql_thread_id() | ���ص�ǰ�̵߳�ID�� |
mysql_use_result() | ��ʼ��һ��һ��һ�еؽ������ϵļ����� |
Ϊ�����ӷ�����������mysql_init()
�Գ�ʼ��һ�����Ӵ�������Ȼ���øô���������mysql_real_connect()
(����������Ϣ�������������û����Ϳ���)�������ø��������ɹ�������mysql_close()
��ֹ����
��һ�����ӻ�Ծʱ���ͻ�������mysql_query()
��mysql_real_query()
��SQL��ѯ���͵������������ߵIJ�����mysql_query()
������ѯ��Ϊһ���ս�β���ַ�����ָ����mysql_real_query()
����һ���������ַ����������ַ�����������������(�����������ֽ�)��������ʹ��mysql_real_query()
��
����ÿ����--SELECT
��ѯ(���磬INSERT
��UPDATE
��DELETE
��)�������Ե���mysql_affected_rows()
֪���ж������ܵ�Ӱ��(�ı�)��
����SELECT
��ѯ������Ϊһ����������������ѡ�����С���ע��һЩ��������SELECT
�ģ����Ƿ����С���Щ����SHOW
��DESCRIBE
��EXPLAIN
������Ӧ����SELECT
������ͬ�ķ�ʽ���Դ�����
�Կͻ��������ַ��������������ϡ�һ�ַ�����ͨ������mysql_store_result()
���̼���ȫ���������ú����ӷ��������ò�ѯ���ص������У��������Ǵ洢�ڿͻ��ˡ��ڶ��ַ����ǶԿͻ�ͨ������mysql_use_result()
��ʼ��һ��һ��һ�еؽ������ϵļ������ú�����ʼ������������ʵ���ϲ��ӷ����������κ��С�
�����������У���ͨ��mysql_fetch_row()
��ȡ�С���mysql_store_result()
��mysql_fetch_row()
����ȡ�Ѿ��ӷ�������ȡ�����С���mysql_use_result()
��mysql_fetch_row()
ʵ���ϴӷ����������С�����mysql_fetch_lengths()
�ɻ��ù���ÿ��������ֵ�ߴ�����Ϣ��
��������һ�����������Ժ���mysql_free_result()
�ͷ�����ʹ�õ��ڴ档
���ּ��������ǻ����ġ��ͻ�����Ӧ��ѡ�����ʺ����ǵ�Ҫ����;������ʵ���У��ͻ�ͨ����Ը��ʹ��mysql_store_result()
��
mysql_store_result()
��һ���ŵ��Ǽ�Ȼ�о����ͻ�ȡ�����㲻����˳����ȡ�У���Ҳ��mysql_data_seek()
��mysql_row_seek()
�ڽ���������ǰ���ƶ��Ըı��ڽ��������еĵ�ǰ��λ�á���Ҳ��ͨ������mysql_num_rows()
֪���ж����С���һ���棬mysql_store_result()
���ڴ������Խϴ��������Ͽ��ܸܺߣ�����������������out-of-memory������
mysql_use_result()
��һ���ŵ��ǿͻ�Ϊ����������Ҫ���ٵ��ڴ棬��Ϊ��һ��ֻ��ά��һ��(������Ϊ�н��ٵķ��俪����mysql_use_result()
�ܸ���Щ)��ȱ���������뾡�촦��ÿһ���Ա�����ס���������㲻���ٽ���������������ȡ��(��ֻ��˳����ȡ��)�������㲻֪���ڽ����������ж����У�ֱ��������ȫ�����������У������������������У���ʹ���ڼ�����;ȷ�������ҵ�����Ѱ�ҵ���Ϣ��
APIʹ�ÿͻ���ȷӦ����ѯ��Ϊ����(��������Ҫ����)������֪����ѯ�Ƿ���һ��SELECT
��������ͨ����mysql_query()
����mysql_real_query()
)֮������mysql_store_result()
�����������������ϵ��óɹ����Ҳ�ѯ��һ��SELECT
�����ܶ�ȡ�С������������ϵ��ã�����mysql_field_count()
ȷ�������Ƿ���ʵ�������ġ�����mysql_field_count()
����0����ѯû�з�������(��������һ��INSERT
��UPDATE
��DELETE��)�����Բ����������С�����mysql_field_count()
�Ƿ��㣬��ѯӦ���з����У�����û�С���������ѯ��һ��ʧ�ܵ�SELECT
����mysql_field_count()
���������������ӵ�������
mysql_store_result()
��mysql_use_result()
�������������й����ɽ������ϵ��ֶε���Ϣ(�ֶ����������ǵ����ֺ����͵ȵ�)��������ͨ���ظ�����mysql_fetch_field()
������˳����ȡ�ֶ���Ϣ��������mysql_fetch_field_direct()
��ȡ���е��ֶα��š���ǰ�ֶι���λ�ÿ���ͨ������mysql_field_seek()
�ı䣬�����ֶι���Ӱ�쵽����mysql_fetch_field()
���á���Ҳ��ͨ������mysql_fetch_fields()
���ϻ����ֶ���Ϣ��
���ڼ����ͱ���������MySQL������mysql_errno()
��mysql_error()
�����ṩ������Ϣ�Ĵ�ȡ�����Ƿ����������õĿ��ܳɹ���ʧ�ܵĺ����Ĵ���������������Ϣ��������ȷ����ʱ����һ��������ʲô������
�������������У�һ��NULL
������ֵ��������C�������Ի�����NULL
������һ��MySQL
NULL
ֵ��
����һ��ֵ�ĺ���һ�㷵��һ��ָ����һ����������������ָ��������һ��ָ���ĺ�������һ����
NULL
ֵ�����ɹ�����һ��NULL
ֵ����һ����������һ�������ĺ�����������ʾ�ɹ�����������ʾһ��������ע�⣬�����㡱ֻ���������塣���Ǻ�����������˵������Ҫ����һ��������������ֵ��
if (result) /* ��ȷ */ ... error ... if (result < 0) /* ����ȷ */ ... error ... if (result == -1) /* ����ȷ */ ... error ...
����������һ������ʱ����������������С���г��������ܵ����͡������Ե���mysql_errno()
�ҳ���������Щ�ص���һ�����������ַ�����ʾ���Ե���mysql_error()
���á�
mysql_affected_rows()
my_ulonglong mysql_affected_rows(MYSQL *mysql)
�����ܵ�����һ��UPDATE
��DELETE
��INSERT
��ѯӰ��(�仯)������������������UPDATE
��DELETE
��INSERT
������mysql_query()
֮���������á�����SELECT
���䣬mysql_affected_rows()
������mysql_num_rows()
��ͬ��
mysql_affected_rows()
Ŀǰ��һ����(macro)��ʵ�֡�
��������һ��������ʾ�ܵ�Ӱ������������������������ʾû��ƥ��������WHERE
�Ӿ��ļ�¼��Ŀǰ��û�в�ѯ��ִ�С�-1��ʾ��ѯ����һ����������һ��SELECT
��ѯ��mysql_affected_rows()
�ڵ���mysql_store_result()
֮ǰ�����á�
û�С�
mysql_query(&mysql,"UPDATE products SET cost=cost*1.25 WHERE group=10"); printf("%d products updated",mysql_affected_rows(&mysql));
mysql_close()
void mysql_close(MYSQL *mysql)
�ر�һ����ǰ�����˵����ӡ�����������mysql_init()
��mysql_connect()
�Զ����䣬mysql_close()
Ҳ�ͷű�mysql
ָ�������Ӿ�����
û�С�
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_connect()
MYSQL *mysql_connect(MYSQL *mysql, const char *host, const char *user, const char
*passwd)
�ú������Ƽ�ʹ�ã�������ʹ��mysql_real_connect()
��
mysql_connect()
��ͼ����һ����������host
��һ��MySQL���ݿ����������ӡ�mysql_connect()
����������ִ������API����֮ǰ�ɹ������ɣ�����mysql_get_client_info()
��
���������mysql_connect()
��Ӧ�IJ�����ͬ����ͬ�������Ӳ���������NULL
�������������£�C
API �Զ�Ϊ���ӽṹ�����ڴ棬���ҵ�������mysql_close()
���ͷ��������ַ�����ȱ������������ʧ�ܣ��㲻�ܼ�����һ��������Ϣ����Ϊ�˴�mysql_errno()
��mysql_error()
�õ�������Ϣ���������ṩһ����Ч��MYSQL
ָ�롣��
ͬmysql_real_connect()
��
ͬmysql_real_connect()
��
mysql_change_user()
my_bool mysql_change_user(MYSQL *mysql, const char *user, const char *password,
const char *db)
�ı��û�����ʹ����db
ָ�����ݿ���Ϊ��mysql
ָ���������ϵ�ȱʡ(��ǰ)���ݿ⡣�������IJ�ѯ�У��������ݿ��Dz�����һ����ȷ�����ݿ�ָ�����ı����õ�ȱʡֵ��
��������������MySQL 3.23.3�����롣
�������ӵ��û��ܱ���֤��������û��Ȩ��ʹ�����ݿ⣬mysql_change_user()
ʧ�ܡ������������£��û������ݿⶼû���ı䡣
�����㲻����һ��ȱʡ���ݿ⣬db
�������Ա�����ΪNULL
��
�ɹ����㡣��������һ���������������㡣
�����ܴ�mysql_real_connect()
�õ�����ͬ��
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
ER_UNKNOWN_COM_ERROR
ER_ACCESS_DENIED_ERROR
ER_BAD_DB_ERROR
ER_DBACCESS_DENIED_ERROR
ER_WRONG_DB_NAME
if (mysql_change_user(&mysql, "user", "password", "new_database")) { fprintf(stderr, "Failed to change user. Error: %s\n", mysql_error(&mysql)); }
mysql_create_db()
int mysql_create_db(MYSQL *mysql, const char *db)
������db
�������������ݿ⡣
�����������Ƽ���������ʹ��mysql_query()
����һ��SQL
CREATE DATABASE
���䡣
�������ݿ��ɹ��ر����죬�㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
if(mysql_create_db(&mysql, "my_database")) { fprintf(stderr, "Failed to create new database. Error: %s\n", mysql_error(&mysql)); }
mysql_data_seek()
void mysql_data_seek(MYSQL_RES *result, unsigned long long offset)
��һ����ѯ���������ж�λ�����С���Ҫ���������Ͻṹ������ѯ��ȫ������������mysql_data_seek()
���Խ�����mysql_store_result()
һ��ʹ�ã�������mysql_use_result()
��
ƫ����Ӧ���Ǵ�0��mysql_num_rows(result)-1
��Χ��һ��ֵ��
�ޡ�
�ޡ�
��
mysql_debug()
void mysql_debug(char *debug)
��һ�������ַ�����һ��DBUG_PUSH
��mysql_debug()
ʹ��Fred
Fish ���Կ⡣Ϊ��ʹ�����������������������ͻ�����֧�ֵ��ԡ���G.1 ����һ��MySQL�������ͽ�G.2 ����һ��MySQL�ͻ���
�ޡ�
�ޡ�
������ʾ�ĵ���ʹ�ÿͻ����ڿͻ��������ġ�/tmp/client.trace���в���һ�������ļ���
mysql_debug("d:t:O,/tmp/client.trace");
mysql_drop_db()
int mysql_drop_db(MYSQL *mysql, const char *db)
������db
�������������ݿ⡣
�����������Ƽ���������ʹ��mysql_query()
����һ��SQL
DROP DATABASE
���䡣
�������ݿ��ɹ��ر����������㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
if(mysql_drop_db(&mysql, "my_database")) fprintf(stderr, "Failed to drop the database: Error: %s\n", mysql_error(&mysql));
mysql_dump_debug_info()
int mysql_dump_debug_info(MYSQL *mysql)
ָʾ�����߽�һЩ������Ϣд����־�ļ������ӵ��û��Դ˱�����precessȨ���ܹ�����
���������ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_eof()
my_bool mysql_eof(MYSQL_RES *result)
�����������Ƽ�����ʹ��mysql_errno()
��mysql_error()
��
mysql_eof()
ȷ���Ƿ��Ѿ�������һ���������ϵ�����һ�С�
�������ӳɹ���mysql_store_result()
���û���һ���������ϣ��ͻ�������һ�������յ�ȫ�����ϡ������������£���mysql_fetch_row()
����һ��NULL
������ζ���Ѿ������˽������ϵ�β����û��Ҫ����mysql_eof()
��
����һ���棬������ʹ��mysql_use_result()
��ʼ��һ���������ϵļ������ü��ϵ����������ظ�����mysql_fetch_row()
һ��һ���شӷ��������á���Ϊ�������������������Ͽ��ܷ���һ������mysql_fetch_row()
����һ��NULL
ֵ������ζ�ż�������������β���������������£�����ʹ��mysql_eof()
ȷ��������ʲô�����������������ϵ�β����mysql_eof()
���ط���ֵ��������������һ���������㡣
��ʱ���ϣ�mysql_eof()
���ڱ�MySQL��������mysql_errno()
��mysql_error()
����Ϊ��Щ���������ṩ��ͬ����Ϣ�����ǵ�ʹ�ø���mysql_eof()
�������ڲ�����ʹ�á�����ʵ�ϣ������ṩ��������Ϣ����Ϊmysql_eof()
ֵ����һ������ֵ������������ָ������������ʱ�ij���ԭ��
��������һ���������㡣���������������ϵĽ��������㡣
�ޡ�
����������ʾ����������ʹ��mysql_eof()
��
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // do something with data } if(!mysql_eof(result)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
Ȼ�����������ñ�MySQL������������ͬ����Ч����
mysql_query(&mysql,"SELECT * FROM some_table"); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { // do something with data } if(mysql_errno(&mysql)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
mysql_errno()
unsigned int mysql_errno(MYSQL *mysql)
������mysql
ָ�������ӣ�mysql_errno()
�����������õĿ��ܳɹ���ʧ�ܵ�API�����Ĵ������롣����ֵ����ζ��û�д����������ͻ�������Ϣ�����г���MySQL��errmsg.h��ͷ�ļ��С�������������Ϣ�����г�����mysqld_error.h���С�
һ����������ֵ������û�д����������㡣
�ޡ�
mysql_error()
char *mysql_error(MYSQL *mysql)
������mysql
ָ�������ӣ�mysql_errno()
�����������õĿ��ܳɹ���ʧ�ܵ�API�����Ĵ������롣����û�д������������ؿ��ַ���(""
)������ζ���������������ǵȼ۵ģ�
if(mysql_errno(&mysql)) { // an error occurred } if(mysql_error(&mysql)[0] != '\0') { // an error occurred }
�ͻ�������Ϣ�����Կ�ͨ�����±���MySQL�ͻ������ı䡣Ŀǰ�������ڼ��ֲ�ͬ�����Լ�ѡȡ������Ϣ����9.1 MySQL֧��ʲô���ԣ���
һ�������������ַ���������û�д������������ַ�����
�ޡ�
��
mysql_escape_string()
unsigned int mysql_escape_string(char *to, const char *from, unsigned int length)
����from
�е��ַ�������Ϊ��һ��SQL�����п��Է�����������ת����SQL�ַ���������������to
�У�
���Ҽ���һ����ֹ�Ŀ��ֽڡ��������ַ���NUL
��ASCII 0)����\n������\r������\������'������"����Control-Z(��7.1 ���֣�����д�ַ���������)��
��from
ָ�����ַ���������length
���ֽڳ�������������to
�Ļ���������length*2+1
���ֽڳ������ڸ�����������ÿ���ַ�������Ҫʹ��2���ֽڱ����룬��������ҪΪ��ֹ���ֽڵĿռ�)
��mysql_escape_string()
����ʱ��to
�����ݽ��ǿ��ַ���ֹ���ַ���������ֵ�DZ��������ַ����ij��ȣ���������ֹ���ַ���
char query[1000],*end; end = strmov(query,"INSERT INTO test_table values("); *end++ = '\''; end += mysql_escape_string(end,"What's this",11); *end++ = '\''; *end++ = ','; *end++ = '\''; end += mysql_escape_string(end,"binary data: \0\r\n",16); *end++ = '\''; *end++ = ')'; if (mysql_real_query(&mysql,query,(unsigned int) (end - query))) { fprintf(stderr, "Failed to insert row, Error: %s\n", mysql_error(&mysql)); }
���������õ�strmov()
������������mysqlclient
�����ҹ���������strcpy()
�����Ƿ���һ��ָ������ֹ�ĵ�һ��������ָ�롣
�Ž�to
��ֵ�ij��ȣ���������ֹ���ַ���
�ޡ�
��
mysql_fetch_field()
MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)
������Ϊһ��MYSQL_FIELD
�ṹ��һ���������ϵ�һ���еĶ��塣�ظ��������������ڽ��������м������й����е���Ϣ����û��ʣ�¸������ֶ�ʱ��mysql_fetch_field()
����NULL
��
��ÿ����ִ��һ���µ�SELECT
��ѯ��mysql_fetch_field()
�����ã�reset)�Է����йص�һ�е���Ϣ����mysql_fetch_field()
���ص��ֶ�Ҳ�ܵ���mysql_field_seek()
��Ӱ�졣
����������mysql_query()
��һ�ű���ִ��һ��SELECT
������û����mysql_store_result()
������������mysql_fetch_field()
ѯ��һ��BLOB
�ֶεij��ȣ�MySQL����ȱʡBLOB����(8K�ֽ�)����ѡ��8K�ij�������ΪMySQL��֪��BLOB
�����ȡ���Ӧ����ij��ʱ������������)
һ�����Ѿ������˽������ϣ�field->max_length
���������ض���ѯ�ж��ڸ�������ֵ�ij��ȡ�
��ǰ�е�MYSQL_FIELD
�ṹ������û����ʣ�£�NULL
��
�ޡ�
MYSQL_FIELD *field; while((field = mysql_fetch_field(result))) { printf("field name %s\n", field->name); }
mysql_fetch_fields()
MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result)
����һ���������ϵ�����MYSQL_FIELD
�ṹ�����顣ÿ���ṹ�ṩ����������һ�е��ֶζ��塣
һ���������ϵ�����MYSQL_FIELD
�ṹ��һ�����顣
�ޡ�
unsigned int num_fields; unsigned int i; MYSQL_FIELD *fields; num_fields = mysql_num_fields(result); fields = mysql_fetch_fields(result); for(i = 0; i < num_fields; i++) { printf("Field %u is %s\n", i, fields[i].name); }
mysql_fetch_field_direct()
MYSQL_FIELD *mysql_fetch_field_direct(MYSQL_RES *result, unsigned int fieldnr)
������һ�����������е�һ���е��ֶα���fieldnr
��������ΪMYSQL_FIELD
�ṹ���е��ֶζ��塣������ʹ�������������������е��塣fieldnr
��ֵӦ���ڴ�0��mysql_num_fields(result)-1
��Χ�ڡ�
ָ���е�MYSQL_FIELD
�ṹ��
�ޡ�
unsigned int num_fields; unsigned int i; MYSQL_FIELD *field; num_fields = mysql_num_fields(result); for(i = 0; i < num_fields; i++) { field = mysql_fetch_field_direct(result, i); printf("Field %u is %s\n", i, field->name); }
mysql_fetch_lengths()
unsigned long *mysql_fetch_lengths(MYSQL_RES *result)
�����ڽ��������ڵĵ�ǰ�е��г��ȡ��������ƻ������ֶ�ֵ������������Ϣ���Ż�Ҳ�����õģ���Ϊ�����Ա�������strlen()
�����⣬�������������а������������ݣ�������ʹ����������ȷ�����ݵĴ�С����Ϊstrlen()
�������ַ����κ��ֶη��ز���ȷ�Ľ�����
���кͰ���NULL
���еij���ֵ���㡣Ϊ�˿�������������������������mysql_fetch_row()
��˵����
��ʾÿ�д�С�����ų�������һ������(�������κ���ֹ���ַ�)����������һ��������NULL
��
mysql_fetch_lengths()
ֻ�Խ������ϵĵ�ǰ����Ч���������ڵ���mysql_fetch_row()
֮ǰ���ڼ������ڽ����е������Ժ���������NULL��
MYSQL_ROW row; unsigned long *lengths; unsigned int num_fields; unsigned int i; row = mysql_fetch_row(result); if (row) { num_fields = mysql_num_fields(result); lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("Column %u is %lu bytes in length.\n", i, lengths[i]); } }
mysql_fetch_row()
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
����һ���������ϵ���һ�С�����mysql_store_result()
֮��ʹ��ʱ������û�и������пɼ���ʱ��mysql_fetch_row()
����NULL
������mysql_use_result()
֮��ʹ��ʱ����û�и������пɼ���ʱ����������һ��������mysql_fetch_row()
����NULL��
������ֵ��������mysql_num_fields(result)
����������row
�����˴�һ������mysql_fetch_row()
���÷��ص�ֵ��ָ����ֵ��ָ����Ϊrow[0]
��row[mysql_num_fields(result)-1]
����ȡ�������е�NULL
ֵ��NULL
ָ��ָ����
�������ֶ�ֵ�ij��ȿ���ͨ������mysql_fetch_lengths()
���á����ֶκͰ���NULL
���ֶγ��ȶ���
0��������ͨ��������ֵ��ָ���������ǡ�����ָ����NULL
���ֶ���NULL
�������ֶ��ǿյġ�
��һ�е�һ��MYSQL_ROW
�ṹ������û�и������пɼ�������������һ��������NULL��
CR_SERVER_LOST
CR_UNKNOWN_ERROR
MYSQL_ROW row; unsigned int num_fields; unsigned int i; num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result))) { unsigned long *lengths; lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL"); } printf("\n"); }
mysql_field_count()
unsigned int mysql_field_count(MYSQL *mysql)
����������ʹ��һ����3.22.24��MySQL�汾����Ӧ��ʹ��unsigned
int mysql_num_fields(MYSQL *mysql)
��
�����������ϵ�������ѯ���е�������
��������һ������mysql_store_result()
����NULL
ʱ��������û�н�������ָ��)�������������У����ܵ���mysql_field_count()
ȷ��mysql_store_result()
�Ƿ�Ӧ�ò�����һ���ǿյĽ�����������һ���ͻ�����ִ����ȷ�IJ�����������֪����ѯ�Ƿ���һ��SELECT
������SELECT
)���䡣������ʾ������˵������������������
��20.4.51 Ϊʲô��mysql_query()
���سɹ�����mysql_store_result()
��ʱ����NULL?
��
�ڽ��������б�ʾ�ֶ������ֵ�һ������������
�ޡ�
MYSQL_RES *result; unsigned int num_fields; unsigned int num_rows; if (mysql_query(&mysql,query_string)) { // error } else // query succeeded, process any data returned by it { result = mysql_store_result(&mysql); if (result) // there are rows { num_fields = mysql_num_fields(result); // retrieve rows, then call mysql_free_result(result) } else // mysql_store_result() returned nothing; should it have? { if(mysql_field_count(&mysql) == 0) { // query does not return data // (it was not a SELECT) num_rows = mysql_affected_rows(&mysql); } else // mysql_store_result() should have returned data { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } } }
��һ��ѡ������mysql_errno(&mysql)
����mysql_field_count(&mysql)
���á������������У���ֱ�Ӽ�������mysql_store_result()
��һ���������Ǵ�mysql_field_count()
ֵ���ƶ������Ƿ���һ��SELECT
��
mysql_field_seek()
MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)
���ֶι������õ�������ƫ��������һ�ε���mysql_fetch_field()
����������ƫ�����������е��ֶζ��塣
Ϊ�˶�λ���е���ʼ������һ��ֵΪ0��offset
ֵ��
�ֶι�������ǰ��ֵ��
�ޡ�
mysql_field_tell()
MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RES *result)
������������һ��mysql_fetch_field()
���ֶι�����λ�á�����ֵ������mysql_field_seek()
��һ��������
�ֶι����ĵ�ǰƫ������
�ޡ�
mysql_free_result()
void mysql_free_result(MYSQL_RES *result)
�ͷ���mysql_store_result()
��mysql_use_result()
��mysql_list_dbs()��Ϊһ���������Ϸ������ڴ档����������һ����������ʱ������������mysql_free_result()
���ͷ���ʹ�õ��ڴ档
�ޡ�
�ޡ�
mysql_get_client_info()
char *mysql_get_client_info(void)
���ش����ͻ����İ汾���ַ�����
����MySQL�ͻ����汾��һ���ַ�����
�ޡ�
mysql_get_host_info()
char *mysql_get_host_info(MYSQL *mysql)
������������ʹ�õ��������͵��ַ�����������������������
��ʾ�������������ߺ��������͵��ַ�����
�ޡ�
��
mysql_get_proto_info()
unsigned int mysql_get_proto_info(MYSQL *mysql)
���ص�ǰ����ʹ�õ�Э���汾��
��ʾ����ǰ����ʹ�õ�Э���汾��һ������������
�ޡ�
mysql_get_server_info()
char *mysql_get_server_info(MYSQL *mysql)
���ر�ʾ�������汾�ŵ��ַ�����
��ʾ�������汾�ŵ�һ���ַ�����
�ޡ�
mysql_info()
char *mysql_info(MYSQL *mysql)
����һ���ַ��������ṩ�й�����ִ�еIJ�ѯ����Ϣ�����Ƕ������г������䡣���������䣬mysql_info()
����NULL
���ַ����ĸ�ʽ����ѯ���Ͷ��仯���������������ֽ�����˵���Եģ��ַ����������Բ�ѯ�ʵ���ֵ��
INSERT INTO ... SELECT ...
Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
Records: 3 Duplicates: 0 Warnings: 0
UPDATE
Rows matched: 40 Changed: 40 Warnings: 0
ע�⣬ֻ�ж���ֵ��������ָ����mysql_info()
��INSERT
... VALUES
�����ŷ��ط�NULL
ֵ��
��ʾ����ִ�еIJ�ѯ�ĸ�����Ϣ��һ���ַ����������ò�����ѯ���κ���Ϣ��NULL��
�ޡ�
mysql_init()
MYSQL *mysql_init(MYSQL *mysql)
��������ʼ���ʺ�mysql_real_connect()
��һ��MYSQL
����������mysql
��һ��NULL
ָ�룬�������䡢��ʼ�����ҷ���һ���¶���������ʼ�����ҷ��ض����ĵ�ַ������mysql_init()
����һ���¶����������ڵ���mysql_close()
�ر�����ʱ���ͷš�
һ������ʼ����MYSQL*
����������û���㹻���ڴ�������һ���¶�����NULL
��
���ڴ治���������£�����NULL
��
mysql_insert_id()
my_ulonglong mysql_insert_id(MYSQL *mysql)
��������ǰ�IJ�ѯΪһ��AUTO_INCREMENT
�����ɵ�ID������ִ��һ��INSERT
��ѯ��һ������AUTO_INCREMENT
�ֶεı��в�������ʹ������������
ע�⣬������ǰ�IJ�ѯ������һ��AUTO_INCREMENT
ֵ��mysql_insert_id()
����0
����������Ҫ���Ժ���ֵ�������ڲ�ѯ�����˸�ֵ�����ϵ���mysql_insert_id()
��
ҲҪע�⣬SQL��LAST_INSERT_ID()
�������ǰ����������ɵ�AUTO_INCREMENT
ֵ�������ڲ�ѯ֮�䲻�����ã���Ϊ�ú�����ֵ�ڷ�������ά����
����ǰ�IJ�ѯ���µ�AUTO_INCREMENT
�ֶε�ֵ��������������û����ǰ��ѯ�ʻ�������ѯû����AUTO_INCREMENT
ֵ�������㡣
�ޡ�
mysql_kill()
int mysql_kill(MYSQL *mysql, unsigned long pid)
Ҫ��������ɱ����pid
ָ�����̡߳�
�ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_list_dbs()
MYSQL_RES *mysql_list_dbs(MYSQL *mysql, const char *wild)
����һ���������ϣ������ڷ������ϵ�ƥ��wild
����ָ���ļ�����������ʽ�����ݿ������ɡ�wild
������ͨ�����ַ���%������_������������ƥ�����е����ݿ���һ��NULL
ָ�롣����mysql_list_dbs()
������ִ�в�ѯSHOW
databases [LIKE wild]
��
��������mysql_free_result()
�ͷŽ������ϡ�
�ɹ���һ��MYSQL_RES
�������ϡ���������һ��������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_OUT_OF_MEMORY
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_list_fields()
MYSQL_RES *mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
����һ���������ϣ������ڸ������е�ƥ��wild
����ָ���ļ�����������ʽ���������ɡ�wild
������ͨ�����ַ���%������_������������ƥ�������е�һ��NULL
ָ�롣����mysql_list_fields()
������ִ�в�ѯSHOW
COLUMNS FROM tbl_name [LIKE wild]
��
ע�⣬������ʹ��SHOW COLUMNS FROM tbl_name
������mysql_list_fields()
��
��������mysql_free_result()
�ͷŽ������ϡ�
�ɹ���һ��MYSQL_RES
�Ľ������ϡ���������һ��������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_list_processes()
MYSQL_RES *mysql_list_processes(MYSQL *mysql)
����һ��������ǰ�������̵߳Ľ������ϡ�������mysqladmin
processlist
��SHOW PROCESSLIST
��ѯ��������ͬ��Ϣ��
��������mysql_free_result()
�ͷŽ������ϡ�
�ɹ���һ��MYSQL_RES
�������ϡ���������һ��������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_list_tables()
MYSQL_RES *mysql_list_tables(MYSQL *mysql, const char *wild)
����һ���������ϣ������ڵ�ǰ���ݿ��е�ƥ��wild
����ָ���ļ�����������ʽ�ı������ɡ�wild
������ͨ�����ַ���%������_������������ƥ�����б���һ��NULL
ָ�롣����mysql_list_tables()
������ִ��ѯ��SHOW
tables [LIKE wild]
��
��������mysql_free_result()
�ͷŽ������ϡ�
�ɹ���һ��MYSQL_RES
�������ϡ���������һ��������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_num_fields()
unsigned int mysql_num_fields(MYSQL_RES *result)
��
unsigned int mysql_num_fields(MYSQL *mysql)
�ڶ�����ʽ��MySQL 3.22.24�����°汾�ϲ��ܹ�����Ϊ�˴���һ��MYSQL*
������������ʹ��unsigned int mysql_field_count(MYSQL *mysql)
��
�ڽ��������з����е�������
ע�⣬��Ҳ����ͨ��һ��ָ��һ���������ϻ�һ�����Ӿ�����ָ�������е�����������mysql_store_result()
��mysql_user_result()
����NULL
���㽫ʹ�����Ӿ�������������û�н�������ָ��)�������������£������Ե���mysql_field_count()
ȷ��mysql_store_result()
�Ƿ�Ӧ�ò����ǿյĽ������������ͻ�������ȡ����ȷ���ж�������֪����ѯ�Ƿ���һ��SELECT
������SELECT
)���䡣���汻��ʾ��������˵������ô���Ա�����
��20.4.51 Ϊʲô��mysql_query()
���سɹ�����mysql_store_result()
��ʱ����NULL?
��
��ʾһ�������������ֶ�������һ������������
�ޡ�
MYSQL_RES *result; unsigned int num_fields; unsigned int num_rows; if (mysql_query(&mysql,query_string)) { // error } else // query succeeded, process any data returned by it { result = mysql_store_result(&mysql); if (result) // there are rows { num_fields = mysql_num_fields(result); // retrieve rows, then call mysql_free_result(result) } else // mysql_store_result() returned nothing; should it have? { if (mysql_errno(&mysql)) { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } else if (mysql_field_count(&mysql) == 0) { // query does not return data // (it was not a SELECT) num_rows = mysql_affected_rows(&mysql); } } }
��һ��ѡ��(������֪������ѯӦ�÷�����һ����������)����mysql_field_count(&mysql)
= 0��һ������������mysql_errno(&mysql)
����ֻ�ᷢ���ڳ����˵����Ρ�
mysql_num_rows()
my_ulonglong mysql_num_rows(MYSQL_RES *result)
�ڽ��������з����е�������
mysql_num_rows()
��ʹ��ȡ�������Ƿ�ʹ��mysql_store_result()
��mysql_use_result()
����һ���������ϡ�������ʹ��mysql_store_result()
��mysql_num_rows()
�������ϱ����á�������ʹ��mysql_use_result()
��mysql_num_rows()
�����᷵����ȷ��ֵ��ֱ���ڽ��������е������о��������ˡ�
�ڽ����������е�������
�ޡ�
mysql_options()
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)
���������ö�������ѡ���Ӱ��һ�����ӵ���Ϊ�������������Ա����ε��������ö���ѡ�
mysql_options()
Ӧ����mysql_init()
֮����mysql_connect()
��mysql_real_connect()
֮ǰ���á�
option
����������Ҫ���õ�ѡ�arg
������ѡ����ֵ������ѡ����һ����������ôarg
Ӧ��ָ������ֵ��
���ܵ�ѡ��ֵ��
ѡ�� | �������� | ���� |
MYSQL_OPT_CONNECT_TIMEOUT |
unsigned int * |
�����Ƶ����ӳ�ʱ�� |
MYSQL_OPT_COMPRESS |
��ʹ�� | ʹ��ѹ���Ŀͻ���/������Э�顣 |
MYSQL_OPT_NAMED_PIPE |
��ʹ�� | ʹ�������ܵ�����һ����NT�ϵ�MySQL�������� |
MYSQL_INIT_COMMAND |
char * |
������MySQL������ʱִ�е��������������ʱ�����Զ�����ִ�С� |
MYSQL_READ_DEFAULT_FILE |
char * |
��������ѡ���ļ������Ǵ���my.cnf����ȡѡ� |
MYSQL_READ_DEFAULT_GROUP |
char * |
����my.cnf������MYSQL_READ_DEFAULT_FILE ָ�����ļ��е��������ж�ȡѡ� |
ע�⣬������ʹ��MYSQL_READ_DEFAULT_FILE
��MYSQL_READ_DEFAULT_GROUP
�����Ƕ�ȡclient
��
��ѡ���ļ���ָ���������ܰ�������ѡ�
compress |
ʹ��ѹ���Ŀͻ���/������Э�顣 |
database |
����������������û��ָ�����ݿ⣬ʹ���������ݿ⡣ |
debug |
����ѡ�� |
host |
ȱʡ������ |
init-command |
������MySQL������ʱ��ִ�е��������������ʱ�����Զ�����ִ�С� |
password |
ȱʡ���� |
pipe |
ʹ�������ܵ�����һ����NT�ϵ�MySQL�������� |
port |
ȱʡ�˿ں� |
return-found-rows |
����mysql_info() �����ҵ����У���������ʹ��UPDATE ʱ�����ظ��µ��С�
|
socket |
ȱʡ���ֺ� |
timeout |
�����Ƶ����ӳ�ʱ�� |
user |
ȱʡ�û� |
����ѡ���ļ��ĸ�����Ϣ����4.15.4 ѡ���ļ���
�ɹ����㡣������ʹ����δ֪��ѡ����㡣
MYSQL mysql; mysql_init(&mysql); mysql_options(&mysql,MYSQL_OPT_COMPRESS,0); mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc"); if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); }
���������ͻ�ʹ��ѹ���Ŀͻ���/������Э�鲢�Ҵ�my.cnf
�ļ���odbc
С�ڶ�ȡ������ѡ�
mysql_ping()
int mysql_ping(MYSQL *mysql)
���鵽�������������Ƿ����ڹ������������ر��ˣ��Զ�����һ�������ӡ�
���������ɱ��Ѿ����кܳ�ʱ���Ŀͻ�ʹ�ã��������������Ƿ��ر������Ӳ������б�Ҫ�������ӡ�
�������������ţ��㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_UNKNOWN_ERROR
��
mysql_query()
int mysql_query(MYSQL *mysql, const char *query)
ִ��ָ������ֹ���ַ���query
��SQL��ѯ����ѯ������һ��������SQL�������ɡ��㲻Ӧ��������������һ����ֹ�ķֺ�(������)��\g
��
mysql_query()
���ܱ����ڰ������������ݵIJ�ѯ���෴��Ӧ��ʹ��mysql_real_query()
�������������ݿ��ܰ�����\0���ַ�����mysql_query()
������Ϊ��ѯ�ַ����Ľ�������
������ѯ�ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_real_connect()
MYSQL *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
client_flag)
mysql_real_connect()
��ͼ����������host
��һ��MySQL���ݿ�������һ�����ӡ�
mysql_real_connect()
��������ִ���κ�����API����֮ǰ�����ɹ������ɣ�����mysql_get_client_info()
��
����ָ�����£�
MYSQL
�ṹ�ĵ�ַ���ڵ���mysql_real_connect()
֮ǰ������������mysql_init()
��ʼ��MYSQL
�ṹ�������������ӡ�
host
ֵ������һ����������һ��IP��ַ������host
��NULL
���ַ���"localhost"
���ٶ��ǵ�����������һ�����ӡ�����OS֧������(Unix)�������ܵ�(Win32)��ʹ�����Ƕ�����TCP/IP�����������ӡ�user
���������û���MySQL��¼ID������user
��NULL
���ٶ��ǵ�ǰ�û�����Unix�£����ǵ�ǰ��¼������Windows
ODBC�£�������ȷ��ָ����ǰ�û����֡���16.4 ������дODBC���������и�������
passwd
����Ϊuser
�����������passwd
��NULL
��ֻ����user
���ж�����һ���հ����ֶε��û�����Ŀ��������һ��ƥ�䡣���������ݿ���������MySQLȨ�ޣ�ʹ�û����ò�ͬ�Ŀ��ȡ���������Ƿ��Ѿ�ָ��һ�����ע�⣺��Ҫ��ͼ�ڵ���mysql_real_connect()
ǰ���ܿ�����������Զ����ͻ�API������db
�����ݿ���������db
����NULL
�����ӽ�ȱʡ���ݿ�����Ϊ����ֵ��port
����0��ֵ����TCP/IP���ӽ������˿ںš�ע��host
�����������ӵ����͡�unix_socket
����NULL
���ַ���ָ�����ֻ�Ӧ�ñ�ʹ�õ������ܵ���ע��host
�����������ӵ����͡�client_flag
ֵͨ����0�������ں������������¿��Ա�����Ϊ���б�־�����ϣ���־���� | ��ζ�ŵı�־ |
CLIENT_FOUND_ROWS |
�����ҵ���(ƥ����)�����������ܵ�Ӱ���������� |
CLIENT_NO_SCHEMA |
������db_name.tbl_name.col_name �������Ϊ��ODBC��������ʹ�ø�������������������һ������������Ϊ��һЩODBC���������������õġ�
|
CLIENT_COMPRESS |
ʹ��ѹ��Э�顣 |
CLIENT_ODBC |
�ͻ���һ��ODBC�ͻ�����ʹmysqld ���ö�ODBC���Ѻá� |
�������ӳɹ���һ�� MYSQL*
���Ӿ�������������ʧ�ܣ�NULL
����һ���ɹ������ӣ�����ֵ����һ������ֵ��ͬ�������㴫��NULL
������
CR_CONN_HOST_ERROR
CR_CONNECTION_ERROR
CR_IPSOCK_ERROR
CR_OUT_OF_MEMORY
CR_SOCKET_CREATE_ERROR
CR_UNKNOWN_HOST
CR_VERSION_ERROR
--old-protocol
ѡ���������·������������ܷ�����
CR_NAMEDPIPEOPEN_ERROR;
CR_NAMEDPIPEWAIT_ERROR;
CR_NAMEDPIPESETSTATE_ERROR;
MYSQL mysql; mysql_init(&mysql); if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); }
mysql_real_query()
int mysql_real_query(MYSQL *mysql, const char *query, unsigned int length)
ִ����query
ָ����SQL��ѯ����Ӧ����һ��length
���ֽڵ��ַ�������ѯ������һ��������SQL�������ɡ��㲻Ӧ��������������һ����ֹ�ķֺ�(��;��)��\g
��
���ڰ������������ݵIJ�ѯ��������ʹ��mysql_real_query()
������mysql_query()
����Ϊ�����ƴ������ݿ��ܰ�����\0���ַ������ң�mysql_real_query()
��mysql_query()
���죬��Ϊ���Բ�ѯ�ַ�������strlen()
��
������ѯ�ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_reload()
int mysql_reload(MYSQL *mysql)
Ҫ��MySQL�������ٴ�װ����Ȩ�������ӵ��û�����ӵ��reloadȨ�ޡ�
���Ƽ���������������ʹ��mysql_query()
����һ��SQL
FLUSH PRIVILEGES
���䡣
�ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_row_seek()
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset)
�����й���Ϊ�ڽ��������е������С���Ҫ���������Ͻṹ������ѯ��ȫ������������mysql_row_seek()
ֻ����mysql_store_result()
һ��ʹ�ã�������mysql_use_result()
��
ƫ����Ӧ���ǵ���mysql_row_tell()
��mysql_row_seek()
���ص�ֵ������ֵ���Ǽ�һ���кţ���������Ҫ�ڽ������������к���Ѱ���У�ʹ��mysql_data_seek()
��
�й�����ǰ��ֵ����ֵ���Ա����ݸ�������mysql_row_seek()
���á�
�ޡ�
mysql_row_tell()
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result)
������mysql_fetch_row()
���й����ĵ�ǰλ�á�����ֵ������Ϊһ����������mysql_row_seek()
��
��Ӧ�ý���mysql_store_result()
��ʹ��mysql_row_tell()
����������mysql_use_result()
����
�й��굱ǰ��ƫ������
�ޡ�
��
mysql_select_db()
int mysql_select_db(MYSQL *mysql, const char *db)
ʹ����db
ָ�������ݿ���Ϊ ����mysql
ָ���������ϵ�ȱʡ(��ǰ)���ݿ⡣�������IJ�ѯ�У��������ݿ����ڲ�����һ����ʽ�����ݿ�ָ�����ı���������ȱʡ���ݿ⡣
�������ӵ��û��ܱ���֤����ʹ�����ݿ⣬����mysql_select_db()
ʧ�ܡ�
�ɹ����㡣��������һ�������㡣
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
��
mysql_shutdown()
int mysql_shutdown(MYSQL *mysql)
�����ݿ��������رա����ӵ��û�������shutdownȨ�ޡ�
�ɹ����㡣��������һ��������
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_stat()
char *mysql_stat(MYSQL *mysql)
���ذ�����������mysqladmin status
�����ṩ����Ϣ��һ���ַ������������������е����������������̡߳����⡢�ٴ�װ�غʹı�����Ŀ��
����������״̬��һ���ַ�������������һ��������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_store_result()
MYSQL_RES *mysql_store_result(MYSQL *mysql)
���ڳɹ��ؼ������ݵ�ÿ��ѯ��(SELECT
��SHOW
��DESCRIBE
��EXPLAIN
)������������mysql_store_result()
��mysql_use_result()
��
mysql_store_result()
��ȡһ�����ͻ��IJ�ѯ��ȫ������������һ��MYSQL_RES
�ṹ�����Ұѽ����Ž������ṹ�С�
����û���з��أ�����һ���ռ��ϼ��ϡ����ս������ϲ�ͬ��һ��NULL
����ֵ����
һ����������mysql_store_result()
�������Ե���mysql_num_rows()
�ҳ������������ж����С�
���ܵ���mysql_fetch_row()
�ӽ���������ȡ���У���mysql_row_seek()
��mysql_row_tell()
���������л��û����õ�ǰ����λ�á�
һ���������������ϣ�����������mysql_free_result()
��
��20.4.51 Ϊʲômysql_query()
���سɹ�����mysql_store_result()
��ʱ����NULL?
��
һ������������MYSQL_RES
�ṹ����������һ��������NULL
��
CR_COMMANDS_OUT_OF_SYNC
CR_OUT_OF_MEMORY
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_thread_id()
unsigned long mysql_thread_id(MYSQL *mysql)
���ص�ǰ���ӵ��߳�ID������ֵ������mysql_kill()
��һ��������ɱ���̡߳�
����ʧȥ���Ӳ�������mysql_ping()
�������ӣ��߳�ID���ı䡣����ζ���㲻Ӧ��Ϊ�Ժ�ʹ�û����߳�ID���Ҵ洢����������Ҫ��ʱ����Ӧ�û�������
��ǰ���ӵ��߳� ID ��
�ޡ�
mysql_use_result()
MYSQL_RES *mysql_use_result(MYSQL *mysql)
���ڳɹ��ؼ������ݵ�ÿ����ѯ(SELECT
��SHOW
��DESCRIBE
��EXPLAIN
)������������mysql_store_result()
��mysql_use_result()
��
mysql_use_result()
��ʼ��һ���������ϵļ����������������������϶����ͻ�������mysql_store_result()
�������෴������ͨ������mysql_fetch_row()
����������ÿһ�У���ֱ�Ӵӷ�������������������һ����ʱ���ػ������д洢��������mysql_store_result()
����һ�㲢��ʹ�ý��ٵ��ڴ档�ͻ���ֻΪ��ǰ�к�һ����������max_allowed_packet
�ֽڵ�ͨ�Ż����������ڴ档
����һ���棬�������ڿͻ��˶�ÿһ���������ܶ��Ĵ������������������͵���Ļ���û����Դ�һ��^S
��ֹͣ����)���㲻Ӧ��ʹ��mysql_use_result()
���⽫����������������ֹ�������̴߳����ݱ�ȡ�����κα��и������ݡ�
��ʹ��mysql_use_result()
ʱ��������ִ��mysql_fetch_row()
ֱ������һ��NULL
ֵ������δȡ�����н���Ϊ��һ����ѯ�Ľ�������һ���ֱ����ء�������������������C
API����������Commands out of sync; You can't run this command now
��
�㲻����һ����mysql_use_result()
���صĽ���������ʹ��mysql_data_seek()
��mysql_row_seek()
��mysql_row_tell()
��mysql_num_rows()
��mysql_affected_rows()
����Ҳ���ܷ��������IJ�ѯֱ��mysql_use_result()
���ɡ���Ȼ��������ȡ�����е����Ժ���mysql_num_rows()
����ȷ�ط���ȡ������������
һ���������������ϣ�����������mysql_free_result()
��
һ��MYSQL_RES
�����ṹ�� ��������һ������������NULL��
CR_COMMANDS_OUT_OF_SYNC
CR_OUT_OF_MEMORY
CR_SERVER_GONE_ERROR
CR_SERVER_LOST
CR_UNKNOWN_ERROR
mysql_query()
���سɹ�����mysql_store_result()
��ʱ����NULL?
�п�����һ����mysql_query()
�ɹ��ĵ��ú���mysql_store_result()
����NULL
�����ⷢ��ʱ������ζ�ų�������������֮һ��
malloc()
ʧ��(���磬������������̫��)�� INSERT
��UPDATE
��DELETE
)��
�����ǿ���ͨ������mysql_field_count()
���������Ƿ�Ӧ�ò����ǿյĽ���������mysql_field_count()
�����㣬�����ǿյIJ�������һ����ѯ�Dz���ֵ��һ������(���磬һ��INSERT
��DELETE
)������mysql_field_count()
���ط���ֵ������Ӧ�ò����ǿյĽ���������mysql_field_count()
������һ�����ӡ�
�����Ե���mysql_error()
��mysql_errno()
����һ��������
�����ɲ�ѯ���صĽ��������⣬��Ҳ�ܵõ�������Ϣ��
INSERT
��UPDATE
��DELETE
ʱ��mysql_affected_rows()
�����ܵ�����һ����ѯӰ����������һ������������ʹ��һ��û��WHERE
�Ӿ���DELETE
�������ضϣ������죡�����������£�mysql_affected_rows()
����Ӱ���ļ�¼���������㡣mysql_num_rows()
���ؽ��������е���������mysql_store_result()
��һ��mysql_store_result()
���أ��Ϳ��Ե���mysql_num_rows()
����mysql_use_result()
��ֻ�������Ѿ���mysql_fetch_row()
ȡ���������к��ܵ���mysql_num_rows()
��mysql_insert_id()
�����ɽ�һ�в���һ������AUTO_INCREMENT
�����ı��е�������ѯ���ɵ�ID����20.4.29 mysql_insert_id()
��LOAD DATA INFILE ...
��INSERT INTO ... SELECT ...
��UPDATE)���ظ��ӵ���Ϣ�������ɷ�mysql_info()
���ء����䷵���ַ����ĸ�ʽ����mysql_info()
������������û�и��ӵ���Ϣ��mysql_info()
����һ��NULL
ָ�롣
������������һ������AUTO_INCREMENT
���Ե��е�һ�ű��в���һ����¼������ͨ��mysql_insert_id()
���������������ɵ�ID��
��Ҳ����ͨ�����㴫�ݸ�mysql_query()
��һ����ѯ�ַ�����ʹ��LAST_INSERT_ID()
����������ID��
������ִ�����д��������Ƿ�ʹ��һ��AUTO_INCREMENT
��������Ҳ������ѯ�Ƿ�����һ��AUTO_INCREMENT
������һ��INSERT��
if (mysql_error(&mysql)[0] == 0 && mysql_num_fields(result) == 0 && mysql_insert_id(&mysql) != 0) { used_id = mysql_insert_id(&mysql); }
����������ID����һ�������ӵĻ������ڷ������Ͻ���ά�����������������ͻ��ı䡣��������������һ���з�����(non-magic)ֵ(��һ���Ȳ���NULL
Ҳ����0
��ֵ)��AUTO_INCREMENT
�У��������������ı䡣
��������Ҫʹ��Ϊһ�ű����ɵ�ID���Ұ������뵽��2�ű���������ʹ����������SQL���䣺
INSERT INTO foo (auto,text) VALUES(NULL,'text'); # generate ID by inserting NULL INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text'); # use ID in second table
����C API����ʱ�����д������ܷ���һЩϵͳ�ϣ�
gcc -g -o client test.o -L/usr/local/lib/mysql -lmysqlclient -lsocket -lnsl Undefined first referenced symbol in file floor /usr/local/lib/mysql/libmysqlclient.a(password.o) ld: fatal: Symbol referencing errors. No output written to client
����������������ϵͳ�ϣ�������ͨ���ڱ���/���������е���������-lm
������ѧ�⡣
�ͻ������������̰߳�ȫ�ġ��������������ڴ����ֶ�ȡ����net.c���е��ӳ��������жϰ�ȫ��(interruot-safe)�����������������ǵģ����������������Լ��ı������ж�һ����ʱ���Ķ�ȡ��������
���ͻ���û�����߳�ѡ�������롣
Ϊ�˻���һ���̰߳�ȫ�Ŀͻ���ʹ��-lmysys
, -lstring
��-ldbug
���ͷ�����ʹ�õ�net_serv.o
��
��ʹ��һ���̻߳��Ŀͻ�ʱ�������Գ�����������thr_alarm.c���ļ��еĺ���������������ʹ������mysys
���ĺ�������Ψһ������ס�������ȵ���my_init()
��
���������mysql_real_connect()
Ŀǰ���̰߳�ȫ�ġ�����ע������������������һ���̰߳�ȫ�Ŀͻ��Ⲣ����һ���̰߳�ȫ�ķ�ʽʹ��������������mysql_real_connect()
��ע������ʵ����Ҳ������mysql_connect()
��������Ϊmysql_connect()
���ᳫʹ�ã�����������Ӧ��ʹ��mysql_real_connect()
����
Ϊ��ʹmysql_real_connect()
���̰߳�ȫ�ģ��������������������±����ͻ��⣺
shell> CPPFLAGS=-DTHREAD_SAFE_CLIENT ./configure ...
�����ӱ��ͻ�ʱ�������ܵõ���ijЩ��Ϊδ�������ŵĴ�������Ϊpthread��û�б�ȱʡ�ذ�����
���յ���libmysqlclient.a�����������̰߳�ȫ�ġ����ĺ�����ֻҪ2���̲߳�ͬʱ��ѯmysql_real_connect()
���ص�ͬһ�����Ӿ������ͻ��������̰߳�ȫ�ģ��ͻ���/������Э����һ��������������һ��ֻ����һ������������������ͬһ����������ʹ�ö����̣߳���������mysql_query()
��mysql_store_result()
�������ϸ�����һ��mutex������һ��mysql_store_result()
�����������Ա��ͷŲ��������߳̿��Բ�ѯͬһ�����ӡ������仰˵����ͬ���߳���ʹ�ò�ͬ��mysql_store_result()
������MYSQL_RES
ָ�룬ֻҪ����ʹ���ʵ�������Э��)
��������POSIX�̱߳��̣�����ʹ��pthread_mutex_lock()
��pthread_mutex_unlock()
���������ͷ�һ��mutex������
������ʹ��mysql_use_result()
������mysql_store_result()
����������Ҫ��Χmysql_use_result()
��mysql_fetch_row()
�ĵ��ã�Ȼ������ȷʵ�Բ�ʹ��mysql_use_result()
�߳̿ͻ������õġ�
���ڼ�����Perl DBI
�ӿڡ���ǰ�Ľӿڱ���Ϊmysqlperl
����ΪDBI
/DBD
�������Ƽ���Perl�ӿڣ�mysqlperl
�ǹ�ʱ�IJ��Ҳ����������ء�
DBI
��DBD::mysql
DBI
�Ƕ��ںܶ����ݿ���һ��ͨ�ýӿڡ�����ζ�����ܱ�дһ���ű������øı����ܹ����ںܶ����ݿ����档����ҪΪÿ�����ݿ����Ͷ����˵�һ�����ݿ���������(DBD)������MySQL��������������ΪDBD::mysql
��
�й�Perl5 DBI�ĸ�����Ϣ��������DBI
��ҳ�����Ķ��ĵ���
http://www.symbolstone.org/technology/perl/DBI/index.html
������Perl5���������������ı���(OOP)�ĸ�����Ϣ���μ�Perl OOPҳ��
http://language.perl.com/info/documentation.html
����MySQL Perl֧�ֵİ�װָ����4.10 Perl��װ˵���и�����
DBI
�ӿ�����ֲ��DBI����
connect |
������һ�����ݿ������������� |
disconnect |
�Ͽ����ݿ������������� |
prepare |
��ִ��һ��SQL���� |
execute |
ִ�����õ����� |
do |
����ִ��һ��SQL���� |
quote |
��������Ҫ�������ַ�����BLOB ֵ |
fetchrow_array |
��Ϊһ���ֶ�����ȡ����һ�� |
fetchrow_arrayref |
��Ϊһ���ֶε���������ȡ����һ�� |
fetchrow_hashref |
��Ϊһ����ϣ��������ȡ����һ�� |
fetchall_arrayref |
��Ϊһ���ֶ�����ȡ���������� |
finish |
����һ�����䲢����ϵͳ�ͷ���Դ |
rows |
������Ӱ�������� |
data_sources |
���ؿ���localhost�ϵõ������ݿ������� |
ChopBlanks |
����fetchrow_* �����Ƿ���ȥ�ո� |
NUM_OF_PARAMS |
�����������е�ռλ��placeholder-����������Ŀ |
NULLABLE |
�������NULL |
trace |
ִ�е��Ը��� |
MySQL�ض��ķ���
insertid |
����һ��AUTO_INCREMENT ֵ |
is_blob |
������BLOB ֵ |
is_key |
�����Ǽ� |
is_num |
���������ֵ� |
is_pri_key |
���������� |
is_not_null |
�������NULL ����NULLABLE �� |
length |
�������ܵ��д�С |
max_length |
������ʵ���ϴ��ڵ������д�С |
NAME |
������ |
NUM_OF_FIELDS |
���ص��ֶ���Ŀ |
table |
�ڷ��صļ����еı��� |
type |
��������� |
Perl��������һ�ڸ���ϸ�����������ڷ�������ֵ�ı�������Щ���壺
$dbh
$sth
$rc
$rv
����ֲDBI����
connect($data_source, $username, $password)
connect
����ʹ��һ�����ݿ����ӵ�����Դ��$data_source
ֵӦ����DBI:driver_name:
��ʼ����DBD::mysql
��������ʹ��connect�����ӣ�
$dbh = DBI->connect("DBI:mysql:$database", $user, $password); $dbh = DBI->connect("DBI:mysql:$database:$hostname", $user, $password); $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port", $user, $password);
�����û���������δ���壬DBI
�ֱ�ʹ��DBI_USER
��DBI_PASS
����������ֵ�������㲻ָ������������ȱʡΪ'localhost'
�������㲻ָ��һ���˿ںţ���ȱʡΪMySQL��ȱʡ�˿�(3306)����Msql-Mysql-modules
�汾1.2009��$data_source
ֵ����ijЩ���δʣ�
mysql_read_default_file=file_name
mysql_read_default_group=group_name
[client]
�顣ͨ��ָ��mysql_read_default_group
ѡ�ȱʡ������[group_name]
�顣mysql_compression=1
mysql_socket=/path/to/socket
���Ը����������δʣ�ÿһ������ǰ��һ���ֺš����磬��������Ҫ������һ��DBI
�ű���Ӳ�����û����Ϳ�������Դ��û�����~/.my.cnf��ѡ���ļ���ȡ�����ǣ�������������д����connect
���ã�
$dbh = DBI->connect("DBI:mysql:$database" . ";mysql_read_default_file=$ENV{HOME}/.my.cnf", $user, $password);
�������ý���ȡ��ѡ���ļ���Ϊ[client]
����������ѡ�����������ͬ�������飬����Ҳʹ��δ[perl]
��ָ����ѡ�������ʹ�ã�
$dbh = DBI->connect("DBI:mysql:$database" . ";mysql_read_default_file=$ENV{HOME}/.my.cnf" . ";mysql_read_default_group=perl", $user, $password);
disconnect
disconnect
���������ݿ��Ͽ����ݿ���������һ���������ӳ����˳�֮ǰ�����á�������$rc = $dbh->disconnect;
prepare($statement)
($sth)
��������ʹ��������execute
������һ������������prepare
��execute
������SELECT
����(����SELECT
���䣬����SHOW
��DESCRIBE
��EXPLAIN
)��������$sth = $dbh->prepare($statement) or die "Can't prepare $statement: $dbh->errstr\n";
execute
execute
����ִ��һ�����õ����䡣�Է�SELECT
���䣬execute
������Ӱ��������������û������Ӱ�죬execute
����"0E0"
��Perl�����������������档����SELECT
���䣬execute
ֻ�������ݿ�������SQL��ѯ������Ҫʹ��������������fetch_*
����֮һ�������ݡ�������$rv = $sth->execute or die "can't execute the query: $sth->errstr;
do($statement)
do
����������ִ��һ��SQL���䲢�ҷ�����Ӱ��������������û�����ܵ�Ӱ�죬do
����"0E0"
��Perl������Ϊ���������档��������ͨ����������������(������������������)������Ҫִ�ж���(���롢ɾ���ȵ�)�ķ�SELECT
���䡣������$rv = $dbh->do($statement) or die "Can't execute $statement: $dbh- >errstr\n";
quote($string)
quote
������������ת�塱������string
�е��κ������ַ��������������ⲿ�����š�������$sql = $dbh->quote($string)
fetchrow_array
while(@row = $sth->fetchrow_array) { print qw($row[0]\t$row[1]\t$row[2]\n); }
fetchrow_arrayref
while($row_ref = $sth->fetchrow_arrayref) { print qw($row_ref->[0]\t$row_ref->[1]\t$row_ref->[2]\n); }
fetchrow_hashref
while($hash_ref = $sth->fetchrow_hashref) { print qw($hash_ref->{firstname}\t$hash_ref->{lastname}\t\ $hash_ref- > title}\n); }
fetchall_arrayref
my $table = $sth->fetchall_arrayref or die "$sth->errstr\n"; my($i, $j); for $i ( 0 .. $#{$table} ) { for $j ( 0 .. $#{$table->[$i]} ) { print "$table->[$i][$j]\t"; } print "\n"; }
finish
$rc = $sth->finish;
rows
SELECT
��execute
����֮������$rv = $sth->rows;
NULLABLE
NULL
ֵ��������$null_possible = $sth->{NULLABLE};
NUM_OF_FIELDS
SELECT
��SHOW FIELDS
���䷵�ص��ֶ���Ŀ����������������һ�������Ƿ��˽�����һ����ֵ����һ����INSERT
��DELETE
��UPDATE
�ķ�SELECT
���䡣������$nr_of_fields = $sth->{NUM_OF_FIELDS};
data_sources($driver_name)
'localhost'
�ϵ�MySQL�������ɵõ������ݿ�����������@dbs = DBI->data_sources("mysql");
ChopBlanks
fetchrow_*
�����Ƿ���ȥ������ֵ��ͷ��β�Ŀհס�������$sth->{'ChopBlanks'} =1;
trace($trace_level)
trace($trace_level, $trace_filename)
trace
�����������رո��١�����Ϊһ��DBI
�������ʱ����Ӱ�������о����ĸ��١�����Ϊһ�����ݿ�������������������ʱ����Ӱ���Ը��������ĸ���(�;�����δ������)������$trace_level
Ϊ2���ṩ��ϸ���ټ���Ϣ������$trace_level
Ϊ0�Թرո��١��ټ�����ȱʡ������������������������ָ��$trace_filename
���ļ�������ģʽ�����������ٵľ������ֱ�д�����ļ���������DBI->trace(2); # trace everything DBI->trace(2,"/tmp/dbi.out"); # trace everything to /tmp/dbi.out $dth->trace(2); # trace this database handle $sth->trace(2); # trace this statement handle
��Ҳ����ͨ������DBI_TRACE
������������DBI
���١���������Ϊ�ȼ��ڵ���DBI->(value)
������ֵ����������Ϊ�ȼ��ڵ���DBI->(2,value)
��·������
MySQL�ض��ķ���
������ʾ�ķ�����MySQL�ض��IJ��Ҳ���DBI
���IJ��֡��������м������ڲ�����ʹ�ã�is_blob
��is_key
��is_num
��is_pri_key
��is_not_null
��length
��max_length��table
��������DBI
������һ�ַ������ڣ�����������˵����
insertid
AUTO_INCREMENT
���ܣ��µ��Զ���1��ֵ���洢�����������$new_id = $sth->{insertid};
is_blob
BLOB
��������
$keys = $sth->{is_blob};
is_key
$keys = $sth->{is_key};
is_num
$keys = $sth->{is_key};
is_pri_key
pri_keys = $sth->{is_pri_key};
is_not_null
NULL
ֵ��������$not_nulls = $sth->{is_not_null};
is_not_null
������ʹ�ã�����ʹ��NULLABLE
����(������������)����Ϊ����һ��
DBI ����
length
max_length
length
����ָ��ÿ�п����е��������ܵijߴ�
(���ڱ�������������)��max_length
����ָ���ڽ�������ʵ�ʴ��ڵ������ߴ硣������$lengths = $sth->{length}; $max_lengths = $sth->{max_length};
NAME
$names = $sth->{NAME};
table
$tables = $sth->{table};
type
$types = $sth->{type};
��DBI
/DBD
��Ϣ������ʹ��perldoc
�����õ������Ĺ���DBI
����Ϣ��
perldoc DBI perldoc DBI::FAQ perldoc DBD::mysql
��Ҳ����ʹ��pod2man
��pod2html�ȹ���ת����������ʽ��
�����㵱Ȼ������DBI
��ҳ���ҵ����µ�DBI
��Ϣ��
http://www.symbolstone.org/technology/perl/DBI/index.html
MySQL ContribĿ¼����Michael Ravits��д��һ��Eiffel��װ������
��Ҳ���������ҵ���http://www.netpedia.net/hosting/newplayer/
��2��ΪMySQL֧�ֵ�JDBC��������(twz��mm��������)����������http://www.mysql.com/Contrib�ҵ���Щ��һ�������������ĵ��������κ�JDBC�ĵ���������������ӵ�е�����MySQL�ض����ܵ��ĵ���
PHP��һ���������ˡ�HTMLǶ��ʽ�ű����ԣ���������������̬��ҳ���������Դ�ȡ�������ݿ���֧�֣�����MySQL��PHP������Ϊһ�������ij������У�������Ϊ��Apache������һ��ʹ�õ�һ��ģ�顣
�ַ����ĵ�����PHP��վ�õ���
��MySQL Contrib Ŀ¼�пɵõ�����API��
MySQL Contrib Ŀ¼����Joseph Skinner��д��һ��Python�ӿڡ�
��Ҳ����ʹ�ö�iODBC��Python�ӿ�����ȡһ��MySQL��������mxODBC
TCL at binevolve��Contrib Ŀ¼����һ������msqltcl 1.50��һ��TCL�ӿڡ�