@@ -109,47 +109,6 @@ int php_le_pmysqli(void)
109109 return le_pmysqli ;
110110}
111111
112- #ifndef MYSQLI_USE_MYSQLND
113- /* {{{ php_free_stmt_bind_buffer */
114- void php_free_stmt_bind_buffer (BIND_BUFFER bbuf , int type )
115- {
116- unsigned int i ;
117-
118- if (!bbuf .var_cnt ) {
119- return ;
120- }
121-
122- for (i = 0 ; i < bbuf .var_cnt ; i ++ ) {
123-
124- /* free temporary bind buffer */
125- if (type == FETCH_RESULT && bbuf .buf [i ].val ) {
126- efree (bbuf .buf [i ].val );
127- }
128-
129- zval_ptr_dtor (& bbuf .vars [i ]);
130- }
131-
132- if (bbuf .vars ) {
133- efree (bbuf .vars );
134- }
135-
136- /*
137- Don't free bbuf.is_null for FETCH_RESULT since we have allocated
138- is_null and buf in one block so we free only buf, which is the beginning
139- of the block. When FETCH_SIMPLE then buf wasn't allocated together with
140- buf and we have to free it.
141- */
142- if (type == FETCH_RESULT ) {
143- efree (bbuf .buf );
144- } else if (type == FETCH_SIMPLE ){
145- efree (bbuf .is_null );
146- }
147-
148- bbuf .var_cnt = 0 ;
149- }
150- /* }}} */
151- #endif
152-
153112/* {{{ php_clear_stmt_bind */
154113void php_clear_stmt_bind (MY_STMT * stmt )
155114{
@@ -164,16 +123,6 @@ void php_clear_stmt_bind(MY_STMT *stmt)
164123 mysqlnd keeps track of the binding and has freed its
165124 structures in stmt_close() above
166125 */
167- #ifndef MYSQLI_USE_MYSQLND
168- /* Clean param bind */
169- php_free_stmt_bind_buffer (stmt -> param , FETCH_SIMPLE );
170- /* Clean output bind */
171- php_free_stmt_bind_buffer (stmt -> result , FETCH_RESULT );
172-
173- if (!Z_ISUNDEF (stmt -> link_handle )) {
174- zval_ptr_dtor (& stmt -> link_handle );
175- }
176- #endif
177126 if (stmt -> query ) {
178127 efree (stmt -> query );
179128 }
@@ -452,7 +401,6 @@ PHP_MYSQLI_EXPORT(zend_object *) mysqli_objects_new(zend_class_entry *class_type
452401}
453402/* }}} */
454403
455- #ifdef MYSQLI_USE_MYSQLND
456404#include "ext/mysqlnd/mysqlnd_reverse_api.h"
457405static MYSQLND * mysqli_convert_zv_to_mysqlnd (zval * zv )
458406{
@@ -475,7 +423,6 @@ static const MYSQLND_REVERSE_API mysqli_reverse_api = {
475423 & mysqli_module_entry ,
476424 mysqli_convert_zv_to_mysqlnd
477425};
478- #endif
479426
480427/* {{{ PHP_INI_BEGIN */
481428PHP_INI_BEGIN ()
@@ -527,11 +474,6 @@ static PHP_GINIT_FUNCTION(mysqli)
527474PHP_MINIT_FUNCTION (mysqli )
528475{
529476 REGISTER_INI_ENTRIES ();
530- #ifndef MYSQLI_USE_MYSQLND
531- if (mysql_server_init (0 , NULL , NULL )) {
532- return FAILURE ;
533- }
534- #endif
535477
536478 memcpy (& mysqli_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
537479 mysqli_object_handlers .offset = XtOffsetOf (mysqli_object , zo );
@@ -596,25 +538,15 @@ PHP_MINIT_FUNCTION(mysqli)
596538 REGISTER_LONG_CONSTANT ("MYSQLI_READ_DEFAULT_FILE" , MYSQL_READ_DEFAULT_FILE , CONST_CS | CONST_PERSISTENT );
597539 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_CONNECT_TIMEOUT" , MYSQL_OPT_CONNECT_TIMEOUT , CONST_CS | CONST_PERSISTENT );
598540 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_LOCAL_INFILE" , MYSQL_OPT_LOCAL_INFILE , CONST_CS | CONST_PERSISTENT );
599- #if (MYSQL_VERSION_ID >= 80021 && !defined(MARIADB_BASE_VERSION )) || defined(MYSQLI_USE_MYSQLND )
600541 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_LOAD_DATA_LOCAL_DIR" , MYSQL_OPT_LOAD_DATA_LOCAL_DIR , CONST_CS | CONST_PERSISTENT );
601- #endif
602542 REGISTER_LONG_CONSTANT ("MYSQLI_INIT_COMMAND" , MYSQL_INIT_COMMAND , CONST_CS | CONST_PERSISTENT );
603543 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_READ_TIMEOUT" , MYSQL_OPT_READ_TIMEOUT , CONST_CS | CONST_PERSISTENT );
604- #ifdef MYSQLI_USE_MYSQLND
605544 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_NET_CMD_BUFFER_SIZE" , MYSQLND_OPT_NET_CMD_BUFFER_SIZE , CONST_CS | CONST_PERSISTENT );
606545 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_NET_READ_BUFFER_SIZE" , MYSQLND_OPT_NET_READ_BUFFER_SIZE , CONST_CS | CONST_PERSISTENT );
607- #endif
608- #ifdef MYSQLI_USE_MYSQLND
609546 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_INT_AND_FLOAT_NATIVE" , MYSQLND_OPT_INT_AND_FLOAT_NATIVE , CONST_CS | CONST_PERSISTENT );
610- #endif
611- #if MYSQL_VERSION_ID < 80000 || MYSQL_VERSION_ID >= 100000 || defined(MYSQLI_USE_MYSQLND )
612547 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_SSL_VERIFY_SERVER_CERT" , MYSQL_OPT_SSL_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
613- #endif
614548
615- #if MYSQL_VERSION_ID > 50605 || defined(MYSQLI_USE_MYSQLND )
616549 REGISTER_LONG_CONSTANT ("MYSQLI_SERVER_PUBLIC_KEY" , MYSQL_SERVER_PUBLIC_KEY , CONST_CS | CONST_PERSISTENT );
617- #endif
618550
619551 /* mysqli_real_connect flags */
620552 REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL" , CLIENT_SSL , CONST_CS | CONST_PERSISTENT );
@@ -625,22 +557,16 @@ PHP_MINIT_FUNCTION(mysqli)
625557 REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_FOUND_ROWS" , CLIENT_FOUND_ROWS , CONST_CS | CONST_PERSISTENT );
626558#ifdef CLIENT_SSL_VERIFY_SERVER_CERT
627559 REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT" , CLIENT_SSL_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
628- #ifdef MYSQLI_USE_MYSQLND
629560 REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT" , CLIENT_SSL_DONT_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
630561#endif
631- #endif
632- #if (MYSQL_VERSION_ID >= 50611 && defined(CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS )) || defined(MYSQLI_USE_MYSQLND )
633562 REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS" , CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS , CONST_CS | CONST_PERSISTENT );
634563 REGISTER_LONG_CONSTANT ("MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS" , MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS , CONST_CS | CONST_PERSISTENT );
635- #endif
636564
637565 /* for mysqli_query */
638566 REGISTER_LONG_CONSTANT ("MYSQLI_STORE_RESULT" , MYSQLI_STORE_RESULT , CONST_CS | CONST_PERSISTENT );
639567 REGISTER_LONG_CONSTANT ("MYSQLI_USE_RESULT" , MYSQLI_USE_RESULT , CONST_CS | CONST_PERSISTENT );
640- #if defined (MYSQLI_USE_MYSQLND )
641568 REGISTER_LONG_CONSTANT ("MYSQLI_ASYNC" , MYSQLI_ASYNC , CONST_CS | CONST_PERSISTENT );
642569 REGISTER_LONG_CONSTANT ("MYSQLI_STORE_RESULT_COPY_DATA" , MYSQLI_STORE_RESULT_COPY_DATA , CONST_CS | CONST_PERSISTENT );
643- #endif
644570
645571 /* for mysqli_fetch_assoc */
646572 REGISTER_LONG_CONSTANT ("MYSQLI_ASSOC" , MYSQLI_ASSOC , CONST_CS | CONST_PERSISTENT );
@@ -676,9 +602,7 @@ PHP_MINIT_FUNCTION(mysqli)
676602 REGISTER_LONG_CONSTANT ("MYSQLI_BINARY_FLAG" , BINARY_FLAG , CONST_CS | CONST_PERSISTENT );
677603 REGISTER_LONG_CONSTANT ("MYSQLI_NO_DEFAULT_VALUE_FLAG" , NO_DEFAULT_VALUE_FLAG , CONST_CS | CONST_PERSISTENT );
678604
679- #if MYSQL_VERSION_ID < 60000 || MYSQL_VERSION_ID > 60003 || defined(MYSQLI_USE_MYSQLND )
680605 REGISTER_LONG_CONSTANT ("MYSQLI_ON_UPDATE_NOW_FLAG" , ON_UPDATE_NOW_FLAG , CONST_CS | CONST_PERSISTENT );
681- #endif
682606
683607 REGISTER_LONG_CONSTANT ("MYSQLI_TYPE_DECIMAL" , FIELD_TYPE_DECIMAL , CONST_CS | CONST_PERSISTENT );
684608 REGISTER_LONG_CONSTANT ("MYSQLI_TYPE_TINY" , FIELD_TYPE_TINY , CONST_CS | CONST_PERSISTENT );
@@ -729,15 +653,7 @@ PHP_MINIT_FUNCTION(mysqli)
729653 REGISTER_LONG_CONSTANT ("MYSQLI_REPORT_OFF" , 0 , CONST_CS | CONST_PERSISTENT );
730654
731655 /* We use non-nested macros with expansion, as VC has problems */
732- #ifdef MYSQLI_USE_MYSQLND
733656 REGISTER_LONG_CONSTANT ("MYSQLI_DEBUG_TRACE_ENABLED" , MYSQLND_DBG_ENABLED , CONST_CS | CONST_PERSISTENT );
734- #else
735- #ifdef DBUG_ON
736- REGISTER_LONG_CONSTANT ("MYSQLI_DEBUG_TRACE_ENABLED" , 1 , CONST_CS | CONST_PERSISTENT );
737- #else
738- REGISTER_LONG_CONSTANT ("MYSQLI_DEBUG_TRACE_ENABLED" , 0 , CONST_CS | CONST_PERSISTENT );
739- #endif
740- #endif
741657
742658 REGISTER_LONG_CONSTANT ("MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED" , SERVER_QUERY_NO_GOOD_INDEX_USED , CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED );
743659 REGISTER_LONG_CONSTANT ("MYSQLI_SERVER_QUERY_NO_INDEX_USED" , SERVER_QUERY_NO_INDEX_USED , CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED );
@@ -778,10 +694,7 @@ PHP_MINIT_FUNCTION(mysqli)
778694 REGISTER_BOOL_CONSTANT ("MYSQLI_IS_MARIADB" , 0 , CONST_CS | CONST_PERSISTENT );
779695#endif
780696
781-
782- #ifdef MYSQLI_USE_MYSQLND
783697 mysqlnd_reverse_api_register_api (& mysqli_reverse_api );
784- #endif
785698
786699 return SUCCESS ;
787700}
@@ -790,21 +703,6 @@ PHP_MINIT_FUNCTION(mysqli)
790703/* {{{ PHP_MSHUTDOWN_FUNCTION */
791704PHP_MSHUTDOWN_FUNCTION (mysqli )
792705{
793- #ifndef MYSQLI_USE_MYSQLND
794- #ifdef PHP_WIN32
795- zend_ulong client_ver = mysql_get_client_version ();
796- /*
797- Can't call mysql_server_end() multiple times prior to 5.0.46 on Windows.
798- PHP bug#41350 MySQL bug#25621
799- */
800- if ((client_ver >= 50046 && client_ver < 50100 ) || client_ver > 50122 ) {
801- mysql_server_end ();
802- }
803- #else
804- mysql_server_end ();
805- #endif
806- #endif
807-
808706 zend_hash_destroy (& mysqli_driver_properties );
809707 zend_hash_destroy (& mysqli_result_properties );
810708 zend_hash_destroy (& mysqli_stmt_properties );
@@ -820,11 +718,6 @@ PHP_MSHUTDOWN_FUNCTION(mysqli)
820718/* {{{ PHP_RINIT_FUNCTION */
821719PHP_RINIT_FUNCTION (mysqli )
822720{
823- #if !defined(MYSQLI_USE_MYSQLND ) && defined(ZTS )
824- if (mysql_thread_init ()) {
825- return FAILURE ;
826- }
827- #endif
828721 MyG (error_msg ) = NULL ;
829722 MyG (error_no ) = 0 ;
830723 MyG (report_mode ) = MYSQLI_REPORT_ERROR |MYSQLI_REPORT_STRICT ;
@@ -839,9 +732,6 @@ PHP_RSHUTDOWN_FUNCTION(mysqli)
839732{
840733 /* check persistent connections, move used to free */
841734
842- #if !defined(MYSQLI_USE_MYSQLND ) && defined(ZTS )
843- mysql_thread_end ();
844- #endif
845735 if (MyG (error_msg )) {
846736 efree (MyG (error_msg ));
847737 }
@@ -865,10 +755,6 @@ PHP_MINFO_FUNCTION(mysqli)
865755 php_info_print_table_row (2 , "Inactive Persistent Links" , buf );
866756 snprintf (buf , sizeof (buf ), ZEND_LONG_FMT , MyG (num_links ));
867757 php_info_print_table_row (2 , "Active Links" , buf );
868- #ifndef MYSQLI_USE_MYSQLND
869- php_info_print_table_row (2 , "Client API header version" , MYSQL_SERVER_VERSION );
870- php_info_print_table_row (2 , "MYSQLI_SOCKET" , MYSQL_UNIX_ADDR );
871- #endif
872758 php_info_print_table_end ();
873759
874760 DISPLAY_INI_ENTRIES ();
@@ -879,9 +765,7 @@ PHP_MINFO_FUNCTION(mysqli)
879765/* Dependencies */
880766static const zend_module_dep mysqli_deps [] = {
881767 ZEND_MOD_REQUIRED ("spl" )
882- #ifdef MYSQLI_USE_MYSQLND
883768 ZEND_MOD_REQUIRED ("mysqlnd" )
884- #endif
885769 ZEND_MOD_END
886770};
887771
@@ -934,10 +818,6 @@ PHP_METHOD(mysqli_stmt, __construct)
934818 RETURN_FALSE ;
935819 }
936820
937- #ifndef MYSQLI_USE_MYSQLND
938- ZVAL_COPY (& stmt -> link_handle , mysql_link );
939- #endif
940-
941821 mysqli_resource = (MYSQLI_RESOURCE * )ecalloc (1 , sizeof (MYSQLI_RESOURCE ));
942822 mysqli_resource -> ptr = (void * )stmt ;
943823 mysqli_resource -> status = MYSQLI_STATUS_INITIALIZED ;
@@ -1006,71 +886,6 @@ PHP_METHOD(mysqli_result, getIterator)
1006886/* {{{ php_mysqli_fetch_into_hash_aux */
1007887void php_mysqli_fetch_into_hash_aux (zval * return_value , MYSQL_RES * result , zend_long fetchtype )
1008888{
1009- #ifndef MYSQLI_USE_MYSQLND
1010- MYSQL_ROW row ;
1011- unsigned int i , num_fields ;
1012- MYSQL_FIELD * fields ;
1013- unsigned long * field_len ;
1014-
1015- if (!(row = mysql_fetch_row (result ))) {
1016- RETURN_NULL ();
1017- }
1018-
1019- if (fetchtype & MYSQLI_ASSOC ) {
1020- fields = mysql_fetch_fields (result );
1021- }
1022-
1023- array_init (return_value );
1024- field_len = mysql_fetch_lengths (result );
1025- num_fields = mysql_num_fields (result );
1026-
1027- for (i = 0 ; i < num_fields ; i ++ ) {
1028- if (row [i ]) {
1029- zval res ;
1030-
1031- if (mysql_fetch_field_direct (result , i )-> type == MYSQL_TYPE_BIT ) {
1032- my_ulonglong llval ;
1033- char tmp [22 ];
1034- switch (field_len [i ]) {
1035- case 8 :llval = (my_ulonglong ) bit_uint8korr (row [i ]);break ;
1036- case 7 :llval = (my_ulonglong ) bit_uint7korr (row [i ]);break ;
1037- case 6 :llval = (my_ulonglong ) bit_uint6korr (row [i ]);break ;
1038- case 5 :llval = (my_ulonglong ) bit_uint5korr (row [i ]);break ;
1039- case 4 :llval = (my_ulonglong ) bit_uint4korr (row [i ]);break ;
1040- case 3 :llval = (my_ulonglong ) bit_uint3korr (row [i ]);break ;
1041- case 2 :llval = (my_ulonglong ) bit_uint2korr (row [i ]);break ;
1042- case 1 :llval = (my_ulonglong ) uint1korr (row [i ]);break ;
1043- EMPTY_SWITCH_DEFAULT_CASE ()
1044- }
1045- /* even though lval is declared as unsigned, the value
1046- * may be negative. Therefore we cannot use MYSQLI_LLU_SPEC and must
1047- * use MYSQLI_LL_SPEC.
1048- */
1049- snprintf (tmp , sizeof (tmp ), (mysql_fetch_field_direct (result , i )-> flags & UNSIGNED_FLAG )? MYSQLI_LLU_SPEC : MYSQLI_LL_SPEC , llval );
1050- ZVAL_STRING (& res , tmp );
1051- } else {
1052- ZVAL_STRINGL (& res , row [i ], field_len [i ]);
1053- }
1054-
1055- if (fetchtype & MYSQLI_NUM ) {
1056- add_index_zval (return_value , i , & res );
1057- }
1058- if (fetchtype & MYSQLI_ASSOC ) {
1059- if (fetchtype & MYSQLI_NUM && Z_REFCOUNTED (res )) {
1060- Z_ADDREF (res );
1061- }
1062- add_assoc_zval (return_value , fields [i ].name , & res );
1063- }
1064- } else {
1065- if (fetchtype & MYSQLI_NUM ) {
1066- add_index_null (return_value , i );
1067- }
1068- if (fetchtype & MYSQLI_ASSOC ) {
1069- add_assoc_null (return_value , fields [i ].name );
1070- }
1071- }
1072- }
1073- #else
1074889 mysqlnd_fetch_into (result , ((fetchtype & MYSQLI_NUM )? MYSQLND_FETCH_NUM :0 ) | ((fetchtype & MYSQLI_ASSOC )? MYSQLND_FETCH_ASSOC :0 ), return_value );
1075890 /* TODO: We don't have access to the connection object at this point, so we use low-level
1076891 * mysqlnd APIs to access the error information. We should try to pass through the connection
@@ -1083,7 +898,6 @@ void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * result, zend
1083898 conn -> m -> get_sqlstate (conn ), error_no , conn -> m -> get_error_str (conn ));
1084899 }
1085900 }
1086- #endif
1087901}
1088902/* }}} */
1089903
0 commit comments