REGISTER_LONG_CONSTANT("MYSQLI_CLIENT_INTERACTIVE", CLIENT_INTERACTIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_CLIENT_NO_SCHEMA", CLIENT_NO_SCHEMA, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("MYSQLI_CLIENT_MULTI_QUERIES", CLIENT_MULTI_QUERIES, CONST_CS | CONST_PERSISTENT);
-
/* for mysqli_query */
REGISTER_LONG_CONSTANT("MYSQLI_STORE_RESULT", 0, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_TINY", FIELD_TYPE_TINY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_SHORT", FIELD_TYPE_SHORT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_LONG", FIELD_TYPE_LONG, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("MYSQLI_TYPE_FLOAD", FIELD_TYPE_FLOAT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("MYSQLI_TYPE_FLOAT", FIELD_TYPE_FLOAT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_DOUBLE", FIELD_TYPE_DOUBLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_NULL", FIELD_TYPE_NULL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_TIMESTAMP", FIELD_TYPE_TIMESTAMP, CONST_CS | CONST_PERSISTENT);
/* reporting */
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_INDEX", MYSQLI_REPORT_INDEX, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ERROR", MYSQLI_REPORT_ERROR, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("MYSQLI_REPORT_CLOSE", MYSQLI_REPORT_CLOSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ALL", MYSQLI_REPORT_ALL, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT);
return SUCCESS;
}
RETURN_FALSE;
}
- if (!offset || offset >= result->row_count) {
+ if (offset < 0 || offset >= result->row_count) {
RETURN_FALSE;
}
}
/* }}} */
-/* {{{ proto int mysqli_free_result(object result)
+/* {{{ proto void mysqli_free_result(object result)
Free query result memory for the given result handle */
PHP_FUNCTION(mysqli_free_result)
{
mysql_free_result(result);
MYSQLI_CLEAR_RESOURCE(&mysql_result);
- RETURN_TRUE;
+ return;
}
/* }}} */
}
/* }}} */
+/* {{{ proto int mysqli_get_client_version(void)
+ Get MySQL client info */
+PHP_FUNCTION(mysqli_get_client_version)
+{
+ RETURN_LONG((long)mysql_get_client_version());
+}
+/* }}} */
+
/* {{{ proto string mysqli_get_host_info (object link)
Get MySQL host info */
PHP_FUNCTION(mysqli_get_host_info)
PHP_FE(mysqli_field_tell, NULL)
PHP_FE(mysqli_free_result, NULL)
PHP_FE(mysqli_get_client_info, NULL)
+ PHP_FE(mysqli_get_client_version, NULL)
PHP_FE(mysqli_get_host_info, NULL)
PHP_FE(mysqli_get_metadata, NULL)
PHP_FE(mysqli_get_proto_info, NULL)
PHP_FALIAS(enable_reads_from_master,mysqli_enable_reads_from_master,NULL)
PHP_FALIAS(enable_rpl_parse,mysqli_enable_rpl_parse,NULL)
PHP_FALIAS(get_client_info,mysqli_get_client_info,NULL)
- PHP_FALIAS(get_host_info,mysqli_get_host_info,NULL)
PHP_FALIAS(get_server_info,mysqli_get_server_info,NULL)
PHP_FALIAS(init,mysqli_init,NULL)
- PHP_FALIAS(info,mysqli_info,NULL)
PHP_FALIAS(kill,mysqli_kill,NULL)
PHP_FALIAS(master_query,mysqli_master_query,NULL)
PHP_FALIAS(mysqli, mysqli_connect, NULL)
}
/* }}} */
-/* {{{ proto resource mysqli_query(object link, string query [,int resultmode]) */
+/* {{{ proto mixed mysqli_query(object link, string query [,int resultmode]) */
PHP_FUNCTION(mysqli_query)
{
MYSQL *mysql;
}
/* }}} */
+/* {{{ property link_server_version_read */
+int link_server_version_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
+ MYSQL *mysql = (MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
+ ALLOC_ZVAL(*retval);
+ ZVAL_LONG(*retval, mysql_get_server_version(mysql));
+ return SUCCESS;
+}
+/* }}} */
+
/* {{{ property link_connect_error_read */
int link_connect_error_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
ALLOC_ZVAL(*retval);
MYSQLI_MAP_PROPERTY_LONG(link_server_capabilities_read, MYSQL, server_capabilities);
MYSQLI_MAP_PROPERTY_LONG(link_server_language_read, MYSQL, server_language);
MYSQLI_MAP_PROPERTY_LONG(link_server_status_read, MYSQL, server_status);
-MYSQLI_MAP_PROPERTY_STRING(link_server_version_read, MYSQL, server_version);
+MYSQLI_MAP_PROPERTY_STRING(link_server_info_read, MYSQL, server_version);
MYSQLI_MAP_PROPERTY_STRING(link_sqlstate_read, MYSQL, net.sqlstate);
MYSQLI_MAP_PROPERTY_LONG(link_thread_id_read, MYSQL, thread_id);
MYSQLI_MAP_PROPERTY_STRING(link_user_read, MYSQL, user);
{"insert_id", link_insert_id_read, NULL},
{"server_capabilities", link_server_capabilities_read, NULL},
{"server_status", link_server_status_read, NULL},
- {"server_version", link_server_version_read, NULL},
+ {"server_info", link_server_info_read, NULL},
+ {"server_version", link_server_version_read, NULL},
{"sqlstate", link_sqlstate_read, NULL},
{"port", link_port_read, NULL},
{"protocol_version", link_protocol_version_read, NULL},
{
int flags;
- if (MyG(report_mode)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Report level already set.");
- RETURN_FALSE;
- }
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &flags) == FAILURE) {
return;
}
- if (!flags) {
- RETURN_FALSE;
- }
MyG(report_mode) = flags;
RETURN_TRUE;
#define FETCH_RESULT 2
/*** REPORT MODES ***/
+#define MYSQLI_REPORT_OFF 0
#define MYSQLI_REPORT_INDEX 1
#define MYSQLI_REPORT_ERROR 2
#define MYSQLI_REPORT_CLOSE 4
PHP_FUNCTION(mysqli_field_tell);
PHP_FUNCTION(mysqli_free_result);
PHP_FUNCTION(mysqli_get_client_info);
+PHP_FUNCTION(mysqli_get_client_version);
PHP_FUNCTION(mysqli_get_host_info);
PHP_FUNCTION(mysqli_get_proto_info);
PHP_FUNCTION(mysqli_get_server_info);