@@ -109,47 +109,6 @@ int php_le_pmysqli(void)
109
109
return le_pmysqli ;
110
110
}
111
111
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
-
153
112
/* {{{ php_clear_stmt_bind */
154
113
void php_clear_stmt_bind (MY_STMT * stmt )
155
114
{
@@ -164,16 +123,6 @@ void php_clear_stmt_bind(MY_STMT *stmt)
164
123
mysqlnd keeps track of the binding and has freed its
165
124
structures in stmt_close() above
166
125
*/
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
177
126
if (stmt -> query ) {
178
127
efree (stmt -> query );
179
128
}
@@ -452,7 +401,6 @@ PHP_MYSQLI_EXPORT(zend_object *) mysqli_objects_new(zend_class_entry *class_type
452
401
}
453
402
/* }}} */
454
403
455
- #ifdef MYSQLI_USE_MYSQLND
456
404
#include "ext/mysqlnd/mysqlnd_reverse_api.h"
457
405
static MYSQLND * mysqli_convert_zv_to_mysqlnd (zval * zv )
458
406
{
@@ -475,7 +423,6 @@ static const MYSQLND_REVERSE_API mysqli_reverse_api = {
475
423
& mysqli_module_entry ,
476
424
mysqli_convert_zv_to_mysqlnd
477
425
};
478
- #endif
479
426
480
427
/* {{{ PHP_INI_BEGIN */
481
428
PHP_INI_BEGIN ()
@@ -527,11 +474,6 @@ static PHP_GINIT_FUNCTION(mysqli)
527
474
PHP_MINIT_FUNCTION (mysqli )
528
475
{
529
476
REGISTER_INI_ENTRIES ();
530
- #ifndef MYSQLI_USE_MYSQLND
531
- if (mysql_server_init (0 , NULL , NULL )) {
532
- return FAILURE ;
533
- }
534
- #endif
535
477
536
478
memcpy (& mysqli_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
537
479
mysqli_object_handlers .offset = XtOffsetOf (mysqli_object , zo );
@@ -596,25 +538,15 @@ PHP_MINIT_FUNCTION(mysqli)
596
538
REGISTER_LONG_CONSTANT ("MYSQLI_READ_DEFAULT_FILE" , MYSQL_READ_DEFAULT_FILE , CONST_CS | CONST_PERSISTENT );
597
539
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_CONNECT_TIMEOUT" , MYSQL_OPT_CONNECT_TIMEOUT , CONST_CS | CONST_PERSISTENT );
598
540
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 )
600
541
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_LOAD_DATA_LOCAL_DIR" , MYSQL_OPT_LOAD_DATA_LOCAL_DIR , CONST_CS | CONST_PERSISTENT );
601
- #endif
602
542
REGISTER_LONG_CONSTANT ("MYSQLI_INIT_COMMAND" , MYSQL_INIT_COMMAND , CONST_CS | CONST_PERSISTENT );
603
543
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_READ_TIMEOUT" , MYSQL_OPT_READ_TIMEOUT , CONST_CS | CONST_PERSISTENT );
604
- #ifdef MYSQLI_USE_MYSQLND
605
544
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_NET_CMD_BUFFER_SIZE" , MYSQLND_OPT_NET_CMD_BUFFER_SIZE , CONST_CS | CONST_PERSISTENT );
606
545
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
609
546
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 )
612
547
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_SSL_VERIFY_SERVER_CERT" , MYSQL_OPT_SSL_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
613
- #endif
614
548
615
- #if MYSQL_VERSION_ID > 50605 || defined(MYSQLI_USE_MYSQLND )
616
549
REGISTER_LONG_CONSTANT ("MYSQLI_SERVER_PUBLIC_KEY" , MYSQL_SERVER_PUBLIC_KEY , CONST_CS | CONST_PERSISTENT );
617
- #endif
618
550
619
551
/* mysqli_real_connect flags */
620
552
REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL" , CLIENT_SSL , CONST_CS | CONST_PERSISTENT );
@@ -625,22 +557,16 @@ PHP_MINIT_FUNCTION(mysqli)
625
557
REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_FOUND_ROWS" , CLIENT_FOUND_ROWS , CONST_CS | CONST_PERSISTENT );
626
558
#ifdef CLIENT_SSL_VERIFY_SERVER_CERT
627
559
REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT" , CLIENT_SSL_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
628
- #ifdef MYSQLI_USE_MYSQLND
629
560
REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT" , CLIENT_SSL_DONT_VERIFY_SERVER_CERT , CONST_CS | CONST_PERSISTENT );
630
561
#endif
631
- #endif
632
- #if (MYSQL_VERSION_ID >= 50611 && defined(CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS )) || defined(MYSQLI_USE_MYSQLND )
633
562
REGISTER_LONG_CONSTANT ("MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS" , CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS , CONST_CS | CONST_PERSISTENT );
634
563
REGISTER_LONG_CONSTANT ("MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS" , MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS , CONST_CS | CONST_PERSISTENT );
635
- #endif
636
564
637
565
/* for mysqli_query */
638
566
REGISTER_LONG_CONSTANT ("MYSQLI_STORE_RESULT" , MYSQLI_STORE_RESULT , CONST_CS | CONST_PERSISTENT );
639
567
REGISTER_LONG_CONSTANT ("MYSQLI_USE_RESULT" , MYSQLI_USE_RESULT , CONST_CS | CONST_PERSISTENT );
640
- #if defined (MYSQLI_USE_MYSQLND )
641
568
REGISTER_LONG_CONSTANT ("MYSQLI_ASYNC" , MYSQLI_ASYNC , CONST_CS | CONST_PERSISTENT );
642
569
REGISTER_LONG_CONSTANT ("MYSQLI_STORE_RESULT_COPY_DATA" , MYSQLI_STORE_RESULT_COPY_DATA , CONST_CS | CONST_PERSISTENT );
643
- #endif
644
570
645
571
/* for mysqli_fetch_assoc */
646
572
REGISTER_LONG_CONSTANT ("MYSQLI_ASSOC" , MYSQLI_ASSOC , CONST_CS | CONST_PERSISTENT );
@@ -676,9 +602,7 @@ PHP_MINIT_FUNCTION(mysqli)
676
602
REGISTER_LONG_CONSTANT ("MYSQLI_BINARY_FLAG" , BINARY_FLAG , CONST_CS | CONST_PERSISTENT );
677
603
REGISTER_LONG_CONSTANT ("MYSQLI_NO_DEFAULT_VALUE_FLAG" , NO_DEFAULT_VALUE_FLAG , CONST_CS | CONST_PERSISTENT );
678
604
679
- #if MYSQL_VERSION_ID < 60000 || MYSQL_VERSION_ID > 60003 || defined(MYSQLI_USE_MYSQLND )
680
605
REGISTER_LONG_CONSTANT ("MYSQLI_ON_UPDATE_NOW_FLAG" , ON_UPDATE_NOW_FLAG , CONST_CS | CONST_PERSISTENT );
681
- #endif
682
606
683
607
REGISTER_LONG_CONSTANT ("MYSQLI_TYPE_DECIMAL" , FIELD_TYPE_DECIMAL , CONST_CS | CONST_PERSISTENT );
684
608
REGISTER_LONG_CONSTANT ("MYSQLI_TYPE_TINY" , FIELD_TYPE_TINY , CONST_CS | CONST_PERSISTENT );
@@ -729,15 +653,7 @@ PHP_MINIT_FUNCTION(mysqli)
729
653
REGISTER_LONG_CONSTANT ("MYSQLI_REPORT_OFF" , 0 , CONST_CS | CONST_PERSISTENT );
730
654
731
655
/* We use non-nested macros with expansion, as VC has problems */
732
- #ifdef MYSQLI_USE_MYSQLND
733
656
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
741
657
742
658
REGISTER_LONG_CONSTANT ("MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED" , SERVER_QUERY_NO_GOOD_INDEX_USED , CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED );
743
659
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)
778
694
REGISTER_BOOL_CONSTANT ("MYSQLI_IS_MARIADB" , 0 , CONST_CS | CONST_PERSISTENT );
779
695
#endif
780
696
781
-
782
- #ifdef MYSQLI_USE_MYSQLND
783
697
mysqlnd_reverse_api_register_api (& mysqli_reverse_api );
784
- #endif
785
698
786
699
return SUCCESS ;
787
700
}
@@ -790,21 +703,6 @@ PHP_MINIT_FUNCTION(mysqli)
790
703
/* {{{ PHP_MSHUTDOWN_FUNCTION */
791
704
PHP_MSHUTDOWN_FUNCTION (mysqli )
792
705
{
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
-
808
706
zend_hash_destroy (& mysqli_driver_properties );
809
707
zend_hash_destroy (& mysqli_result_properties );
810
708
zend_hash_destroy (& mysqli_stmt_properties );
@@ -820,11 +718,6 @@ PHP_MSHUTDOWN_FUNCTION(mysqli)
820
718
/* {{{ PHP_RINIT_FUNCTION */
821
719
PHP_RINIT_FUNCTION (mysqli )
822
720
{
823
- #if !defined(MYSQLI_USE_MYSQLND ) && defined(ZTS )
824
- if (mysql_thread_init ()) {
825
- return FAILURE ;
826
- }
827
- #endif
828
721
MyG (error_msg ) = NULL ;
829
722
MyG (error_no ) = 0 ;
830
723
MyG (report_mode ) = MYSQLI_REPORT_ERROR |MYSQLI_REPORT_STRICT ;
@@ -839,9 +732,6 @@ PHP_RSHUTDOWN_FUNCTION(mysqli)
839
732
{
840
733
/* check persistent connections, move used to free */
841
734
842
- #if !defined(MYSQLI_USE_MYSQLND ) && defined(ZTS )
843
- mysql_thread_end ();
844
- #endif
845
735
if (MyG (error_msg )) {
846
736
efree (MyG (error_msg ));
847
737
}
@@ -865,10 +755,6 @@ PHP_MINFO_FUNCTION(mysqli)
865
755
php_info_print_table_row (2 , "Inactive Persistent Links" , buf );
866
756
snprintf (buf , sizeof (buf ), ZEND_LONG_FMT , MyG (num_links ));
867
757
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
872
758
php_info_print_table_end ();
873
759
874
760
DISPLAY_INI_ENTRIES ();
@@ -879,9 +765,7 @@ PHP_MINFO_FUNCTION(mysqli)
879
765
/* Dependencies */
880
766
static const zend_module_dep mysqli_deps [] = {
881
767
ZEND_MOD_REQUIRED ("spl" )
882
- #ifdef MYSQLI_USE_MYSQLND
883
768
ZEND_MOD_REQUIRED ("mysqlnd" )
884
- #endif
885
769
ZEND_MOD_END
886
770
};
887
771
@@ -934,10 +818,6 @@ PHP_METHOD(mysqli_stmt, __construct)
934
818
RETURN_FALSE ;
935
819
}
936
820
937
- #ifndef MYSQLI_USE_MYSQLND
938
- ZVAL_COPY (& stmt -> link_handle , mysql_link );
939
- #endif
940
-
941
821
mysqli_resource = (MYSQLI_RESOURCE * )ecalloc (1 , sizeof (MYSQLI_RESOURCE ));
942
822
mysqli_resource -> ptr = (void * )stmt ;
943
823
mysqli_resource -> status = MYSQLI_STATUS_INITIALIZED ;
@@ -1006,71 +886,6 @@ PHP_METHOD(mysqli_result, getIterator)
1006
886
/* {{{ php_mysqli_fetch_into_hash_aux */
1007
887
void php_mysqli_fetch_into_hash_aux (zval * return_value , MYSQL_RES * result , zend_long fetchtype )
1008
888
{
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
1074
889
mysqlnd_fetch_into (result , ((fetchtype & MYSQLI_NUM )? MYSQLND_FETCH_NUM :0 ) | ((fetchtype & MYSQLI_ASSOC )? MYSQLND_FETCH_ASSOC :0 ), return_value );
1075
890
/* TODO: We don't have access to the connection object at this point, so we use low-level
1076
891
* 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
1083
898
conn -> m -> get_sqlstate (conn ), error_no , conn -> m -> get_error_str (conn ));
1084
899
}
1085
900
}
1086
- #endif
1087
901
}
1088
902
/* }}} */
1089
903
0 commit comments