version 1.1, 2012/02/21 23:47:58
|
version 1.1.1.2, 2012/05/29 12:34:41
|
Line 13
|
Line 13
|
| license@php.net so we can mail you a copy immediately. | |
| license@php.net so we can mail you a copy immediately. | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Author: Georg Richter <georg@php.net> | |
| Author: Georg Richter <georg@php.net> | |
|
| Andrey Hristov <andrey@php.net> | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
|
|
$Id$ |
$Id$ |
Line 189 static int link_affected_rows_read(mysqli_object *obj,
|
Line 190 static int link_affected_rows_read(mysqli_object *obj,
|
} |
} |
/* }}} */ |
/* }}} */ |
|
|
|
|
|
/* {{{ property link_error_list_read */ |
|
static int link_error_list_read(mysqli_object *obj, zval **retval TSRMLS_DC) |
|
{ |
|
MY_MYSQL *mysql; |
|
|
|
MAKE_STD_ZVAL(*retval); |
|
|
|
CHECK_STATUS(MYSQLI_STATUS_VALID); |
|
|
|
mysql = (MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; |
|
|
|
array_init(*retval); |
|
if (mysql) { |
|
#if defined(MYSQLI_USE_MYSQLND) |
|
if (mysql->mysql->data->error_info->error_list) { |
|
MYSQLND_ERROR_LIST_ELEMENT * message; |
|
zend_llist_position pos; |
|
for (message = (MYSQLND_ERROR_LIST_ELEMENT *) zend_llist_get_first_ex(mysql->mysql->data->error_info->error_list, &pos); |
|
message; |
|
message = (MYSQLND_ERROR_LIST_ELEMENT *) zend_llist_get_next_ex(mysql->mysql->data->error_info->error_list, &pos)) |
|
{ |
|
zval * single_error; |
|
MAKE_STD_ZVAL(single_error); |
|
array_init(single_error); |
|
add_assoc_long_ex(single_error, "errno", sizeof("errno"), message->error_no); |
|
add_assoc_string_ex(single_error, "sqlstate", sizeof("sqlstate"), message->sqlstate, 1); |
|
add_assoc_string_ex(single_error, "error", sizeof("error"), message->error, 1); |
|
add_next_index_zval(*retval, single_error); |
|
} |
|
} |
|
#else |
|
if (mysql_errno(mysql->mysql)) { |
|
zval * single_error; |
|
MAKE_STD_ZVAL(single_error); |
|
array_init(single_error); |
|
add_assoc_long_ex(single_error, "errno", sizeof("errno"), mysql_errno(mysql->mysql)); |
|
add_assoc_string_ex(single_error, "sqlstate", sizeof("sqlstate"), mysql_sqlstate(mysql->mysql), 1); |
|
add_assoc_string_ex(single_error, "error", sizeof("error"), mysql_error(mysql->mysql), 1); |
|
add_next_index_zval(*retval, single_error); |
|
} |
|
#endif |
|
} |
|
return SUCCESS; |
|
} |
|
/* }}} */ |
|
|
|
|
/* link properties */ |
/* link properties */ |
MYSQLI_MAP_PROPERTY_FUNC_LONG(link_errno_read, mysql_errno, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED), ulong, "%lu") |
MYSQLI_MAP_PROPERTY_FUNC_LONG(link_errno_read, mysql_errno, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED), ulong, "%lu") |
MYSQLI_MAP_PROPERTY_FUNC_STRING(link_error_read, mysql_error, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED)) |
MYSQLI_MAP_PROPERTY_FUNC_STRING(link_error_read, mysql_error, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED)) |
Line 211 static int link_stat_read(mysqli_object *obj, zval **r
|
Line 260 static int link_stat_read(mysqli_object *obj, zval **r
|
MAKE_STD_ZVAL(*retval); |
MAKE_STD_ZVAL(*retval); |
ZVAL_NULL(*retval); |
ZVAL_NULL(*retval); |
|
|
|
#if defined(MYSQLI_USE_MYSQLND) |
CHECK_STATUS(MYSQLI_STATUS_INITIALIZED); |
CHECK_STATUS(MYSQLI_STATUS_INITIALIZED); |
|
#else |
|
CHECK_STATUS(MYSQLI_STATUS_VALID); |
|
#endif |
|
|
mysql = (MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; |
mysql = (MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; |
|
|
Line 232 static int link_stat_read(mysqli_object *obj, zval **r
|
Line 285 static int link_stat_read(mysqli_object *obj, zval **r
|
} |
} |
/* }}} */ |
/* }}} */ |
|
|
|
|
/* result properties */ |
/* result properties */ |
|
|
/* {{{ property result_type_read */ |
/* {{{ property result_type_read */ |
Line 336 static int stmt_affected_rows_read(mysqli_object *obj,
|
Line 390 static int stmt_affected_rows_read(mysqli_object *obj,
|
} |
} |
/* }}} */ |
/* }}} */ |
|
|
|
/* {{{ property stmt_error_list_read */ |
|
static int stmt_error_list_read(mysqli_object *obj, zval **retval TSRMLS_DC) |
|
{ |
|
MY_STMT * stmt; |
|
|
|
MAKE_STD_ZVAL(*retval); |
|
CHECK_STATUS(MYSQLI_STATUS_INITIALIZED); |
|
|
|
stmt = (MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; |
|
array_init(*retval); |
|
if (stmt && stmt->stmt) { |
|
#if defined(MYSQLI_USE_MYSQLND) |
|
if (stmt->stmt->data && stmt->stmt->data->error_info->error_list) { |
|
MYSQLND_ERROR_LIST_ELEMENT * message; |
|
zend_llist_position pos; |
|
for (message = (MYSQLND_ERROR_LIST_ELEMENT *) zend_llist_get_first_ex(stmt->stmt->data->error_info->error_list, &pos); |
|
message; |
|
message = (MYSQLND_ERROR_LIST_ELEMENT *) zend_llist_get_next_ex(stmt->stmt->data->error_info->error_list, &pos)) |
|
{ |
|
zval * single_error; |
|
MAKE_STD_ZVAL(single_error); |
|
array_init(single_error); |
|
add_assoc_long_ex(single_error, "errno", sizeof("errno"), message->error_no); |
|
add_assoc_string_ex(single_error, "sqlstate", sizeof("sqlstate"), message->sqlstate, 1); |
|
add_assoc_string_ex(single_error, "error", sizeof("error"), message->error, 1); |
|
add_next_index_zval(*retval, single_error); |
|
} |
|
} |
|
#else |
|
if (mysql_stmt_errno(stmt->stmt)) { |
|
zval * single_error; |
|
MAKE_STD_ZVAL(single_error); |
|
array_init(single_error); |
|
add_assoc_long_ex(single_error, "errno", sizeof("errno"), mysql_stmt_errno(stmt->stmt)); |
|
add_assoc_string_ex(single_error, "sqlstate", sizeof("sqlstate"), mysql_stmt_sqlstate(stmt->stmt), 1); |
|
add_assoc_string_ex(single_error, "error", sizeof("error"), mysql_stmt_error(stmt->stmt), 1); |
|
add_next_index_zval(*retval, single_error); |
|
} |
|
#endif |
|
} |
|
return SUCCESS; |
|
} |
|
/* }}} */ |
|
|
|
|
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_insert_id_read, mysql_stmt_insert_id, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong, MYSQLI_LLU_SPEC) |
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_insert_id_read, mysql_stmt_insert_id, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong, MYSQLI_LLU_SPEC) |
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_num_rows_read, mysql_stmt_num_rows, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong, MYSQLI_LLU_SPEC) |
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_num_rows_read, mysql_stmt_num_rows, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong, MYSQLI_LLU_SPEC) |
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_param_count_read, mysql_stmt_param_count, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), ulong, "%lu") |
MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_param_count_read, mysql_stmt_param_count, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), ulong, "%lu") |
Line 353 const mysqli_property_entry mysqli_link_property_entri
|
Line 452 const mysqli_property_entry mysqli_link_property_entri
|
{"connect_error", sizeof("connect_error") - 1, link_connect_error_read, NULL}, |
{"connect_error", sizeof("connect_error") - 1, link_connect_error_read, NULL}, |
{"errno", sizeof("errno") - 1, link_errno_read, NULL}, |
{"errno", sizeof("errno") - 1, link_errno_read, NULL}, |
{"error", sizeof("error") - 1, link_error_read, NULL}, |
{"error", sizeof("error") - 1, link_error_read, NULL}, |
|
{"error_list", sizeof("error_list") - 1, link_error_list_read, NULL}, |
{"field_count", sizeof("field_count") - 1, link_field_count_read, NULL}, |
{"field_count", sizeof("field_count") - 1, link_field_count_read, NULL}, |
{"host_info", sizeof("host_info") - 1, link_host_info_read, NULL}, |
{"host_info", sizeof("host_info") - 1, link_host_info_read, NULL}, |
{"info", sizeof("info") - 1, link_info_read, NULL}, |
{"info", sizeof("info") - 1, link_info_read, NULL}, |
Line 367 const mysqli_property_entry mysqli_link_property_entri
|
Line 467 const mysqli_property_entry mysqli_link_property_entri
|
{NULL, 0, NULL, NULL} |
{NULL, 0, NULL, NULL} |
}; |
}; |
|
|
/* should not be const, as it is patched during runtime */ | |
zend_property_info mysqli_link_property_info_entries[] = { | const zend_property_info mysqli_link_property_info_entries[] = { |
{ZEND_ACC_PUBLIC, "affected_rows", sizeof("affected_rows") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "affected_rows", sizeof("affected_rows") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "client_info", sizeof("client_info") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "client_info", sizeof("client_info") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "client_version", sizeof("client_version") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "client_version", sizeof("client_version") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "connect_errno", sizeof("connect_errno") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "connect_errno", sizeof("connect_errno") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "connect_error", sizeof("connect_error") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "connect_error", sizeof("connect_error") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "errno", sizeof("errno") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "errno", sizeof("errno") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "error", sizeof("error") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "error", sizeof("error") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "field_count", sizeof("field_count") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "error_list", sizeof("error_list") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "host_info", sizeof("host_info") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "field_count", sizeof("field_count") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "info", sizeof("info") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "host_info", sizeof("host_info") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "insert_id", sizeof("insert_id") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "info", sizeof("info") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "server_info", sizeof("server_info") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "insert_id", sizeof("insert_id") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "server_version", sizeof("server_version") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "server_info", sizeof("server_info") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "stat", sizeof("stat") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "server_version", sizeof("server_version") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "sqlstate", sizeof("sqlstate") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "stat", sizeof("stat") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "protocol_version", sizeof("protocol_version")-1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "sqlstate", sizeof("sqlstate") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "thread_id", sizeof("thread_id") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "protocol_version", sizeof("protocol_version")-1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "warning_count", sizeof("warning_count") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "thread_id", sizeof("thread_id") - 1, -1, 0, NULL, 0, NULL}, |
{0, NULL, 0, 0, NULL, 0, NULL} | {ZEND_ACC_PUBLIC, "warning_count", sizeof("warning_count") - 1, -1, 0, NULL, 0, NULL}, |
| {0, NULL, 0, -1, 0, NULL, 0, NULL} |
}; |
}; |
|
|
|
|
Line 400 const mysqli_property_entry mysqli_result_property_ent
|
Line 501 const mysqli_property_entry mysqli_result_property_ent
|
{NULL, 0, NULL, NULL} |
{NULL, 0, NULL, NULL} |
}; |
}; |
|
|
zend_property_info mysqli_result_property_info_entries[] = { | const zend_property_info mysqli_result_property_info_entries[] = { |
{ZEND_ACC_PUBLIC, "current_field", sizeof("current_field")-1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "current_field", sizeof("current_field")-1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "field_count", sizeof("field_count") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "field_count", sizeof("field_count") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "lengths", sizeof("lengths") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "lengths", sizeof("lengths") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "num_rows", sizeof("num_rows") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "num_rows", sizeof("num_rows") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "type", sizeof("type") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "type", sizeof("type") - 1, -1, 0, NULL, 0, NULL}, |
{0, NULL, 0, 0, NULL, 0, NULL} | {0, NULL, 0, -1, 0, NULL, 0, NULL} |
}; |
}; |
|
|
const mysqli_property_entry mysqli_stmt_property_entries[] = { |
const mysqli_property_entry mysqli_stmt_property_entries[] = { |
Line 417 const mysqli_property_entry mysqli_stmt_property_entri
|
Line 518 const mysqli_property_entry mysqli_stmt_property_entri
|
{"field_count", sizeof("field_count") - 1, stmt_field_count_read, NULL}, |
{"field_count", sizeof("field_count") - 1, stmt_field_count_read, NULL}, |
{"errno", sizeof("errno") - 1, stmt_errno_read, NULL}, |
{"errno", sizeof("errno") - 1, stmt_errno_read, NULL}, |
{"error", sizeof("error") - 1, stmt_error_read, NULL}, |
{"error", sizeof("error") - 1, stmt_error_read, NULL}, |
|
{"error_list", sizeof("error_list") - 1, stmt_error_list_read, NULL}, |
{"sqlstate", sizeof("sqlstate") - 1, stmt_sqlstate_read, NULL}, |
{"sqlstate", sizeof("sqlstate") - 1, stmt_sqlstate_read, NULL}, |
{"id", sizeof("id") - 1, stmt_id_read, NULL}, |
{"id", sizeof("id") - 1, stmt_id_read, NULL}, |
{NULL, 0, NULL, NULL} |
{NULL, 0, NULL, NULL} |
}; |
}; |
|
|
|
|
zend_property_info mysqli_stmt_property_info_entries[] = { | const zend_property_info mysqli_stmt_property_info_entries[] = { |
{ZEND_ACC_PUBLIC, "affected_rows", sizeof("affected_rows") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "affected_rows", sizeof("affected_rows") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "insert_id", sizeof("insert_id") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "insert_id", sizeof("insert_id") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "num_rows", sizeof("num_rows") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "num_rows", sizeof("num_rows") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "param_count",sizeof("param_count") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "param_count",sizeof("param_count") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "field_count",sizeof("field_count") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "field_count",sizeof("field_count") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "errno", sizeof("errno") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "errno", sizeof("errno") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "error", sizeof("error") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "error", sizeof("error") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "sqlstate", sizeof("sqlstate") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "error_list", sizeof("error_list") - 1, -1, 0, NULL, 0, NULL}, |
{ZEND_ACC_PUBLIC, "id", sizeof("id") - 1, 0, NULL, 0, NULL}, | {ZEND_ACC_PUBLIC, "sqlstate", sizeof("sqlstate") - 1, -1, 0, NULL, 0, NULL}, |
{0, NULL, 0, 0, NULL, 0, NULL} | {ZEND_ACC_PUBLIC, "id", sizeof("id") - 1, -1, 0, NULL, 0, NULL}, |
| {0, NULL, 0, -1, 0, NULL, 0, NULL} |
}; |
}; |
|
|
/* |
/* |