summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mysqli/EXPERIMENTAL0
-rw-r--r--ext/mysqli/mysqli.c6
-rw-r--r--ext/mysqli/mysqli_api.c14
-rw-r--r--ext/mysqli/mysqli_fe.c3
-rw-r--r--ext/mysqli/mysqli_nonapi.c2
-rw-r--r--ext/mysqli/mysqli_prop.c14
-rw-r--r--ext/mysqli/mysqli_report.c7
-rw-r--r--ext/mysqli/php_mysqli.h2
8 files changed, 29 insertions, 19 deletions
diff --git a/ext/mysqli/EXPERIMENTAL b/ext/mysqli/EXPERIMENTAL
deleted file mode 100644
index e69de29bb2..0000000000
--- a/ext/mysqli/EXPERIMENTAL
+++ /dev/null
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index c2ca07263f..a55d2bb229 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -386,8 +386,6 @@ PHP_MINIT_FUNCTION(mysqli)
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);
@@ -418,7 +416,7 @@ PHP_MINIT_FUNCTION(mysqli)
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);
@@ -458,8 +456,8 @@ PHP_MINIT_FUNCTION(mysqli)
/* 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;
}
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index 8282361bf2..ac23dde850 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -439,7 +439,7 @@ PHP_FUNCTION(mysqli_data_seek)
RETURN_FALSE;
}
- if (!offset || offset >= result->row_count) {
+ if (offset < 0 || offset >= result->row_count) {
RETURN_FALSE;
}
@@ -914,7 +914,7 @@ PHP_FUNCTION(mysqli_field_tell)
}
/* }}} */
-/* {{{ 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)
{
@@ -929,7 +929,7 @@ PHP_FUNCTION(mysqli_free_result)
mysql_free_result(result);
MYSQLI_CLEAR_RESOURCE(&mysql_result);
- RETURN_TRUE;
+ return;
}
/* }}} */
@@ -941,6 +941,14 @@ PHP_FUNCTION(mysqli_get_client_info)
}
/* }}} */
+/* {{{ 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)
diff --git a/ext/mysqli/mysqli_fe.c b/ext/mysqli/mysqli_fe.c
index 2a599e808f..e2061ce94e 100644
--- a/ext/mysqli/mysqli_fe.c
+++ b/ext/mysqli/mysqli_fe.c
@@ -86,6 +86,7 @@ function_entry mysqli_functions[] = {
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)
@@ -167,10 +168,8 @@ function_entry mysqli_link_methods[] = {
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)
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index 65c71589d2..d34cf1717d 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -210,7 +210,7 @@ PHP_FUNCTION(mysqli_multi_query)
}
/* }}} */
-/* {{{ 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;
diff --git a/ext/mysqli/mysqli_prop.c b/ext/mysqli/mysqli_prop.c
index 256213af45..79c6c63c01 100644
--- a/ext/mysqli/mysqli_prop.c
+++ b/ext/mysqli/mysqli_prop.c
@@ -94,6 +94,15 @@ int link_connect_errno_read(mysqli_object *obj, zval **retval TSRMLS_DC) {
}
/* }}} */
+/* {{{ 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);
@@ -117,7 +126,7 @@ MYSQLI_MAP_PROPERTY_LONG(link_protocol_version_read, MYSQL, protocol_version);
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);
@@ -191,7 +200,8 @@ mysqli_property_entry mysqli_link_property_entries[] = {
{"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},
diff --git a/ext/mysqli/mysqli_report.c b/ext/mysqli/mysqli_report.c
index 88bc573512..fd3d66d424 100644
--- a/ext/mysqli/mysqli_report.c
+++ b/ext/mysqli/mysqli_report.c
@@ -33,18 +33,11 @@ PHP_FUNCTION(mysqli_report)
{
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;
diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h
index 0bb94cf989..f5e5dd116d 100644
--- a/ext/mysqli/php_mysqli.h
+++ b/ext/mysqli/php_mysqli.h
@@ -229,6 +229,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
#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
@@ -294,6 +295,7 @@ PHP_FUNCTION(mysqli_field_seek);
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);