1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2018 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Georg Richter <georg@php.net> | 16 | Andrey Hristov <andrey@php.net> | 17 | Ulf Wendel <uw@php.net> | 18 +----------------------------------------------------------------------+ 19 */ 20 21 #ifdef HAVE_CONFIG_H 22 #include "config.h" 23 #endif 24 25 #include <signal.h> 26 27 #include "php.h" 28 #include "php_ini.h" 29 #include "ext/standard/info.h" 30 #include "php_mysqli_structs.h" 31 #include "mysqli_fe.h" 32 #include "mysqli_priv.h" 33 34 #ifdef MYSQLI_USE_FULL_TYPED_ARGINFO_0 35 #define MYSQLI_ZEND_ARG_OBJ_INFO_LINK() ZEND_ARG_OBJ_INFO(0, link, mysqli, 0) 36 #define MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() ZEND_ARG_OBJ_INFO(0, result, mysqli_result, 0) 37 #define MYSQLI_ZEND_ARG_OBJ_INFO_STMT() ZEND_ARG_OBJ_INFO(0, stmt, mysqli_stmt, 0) 38 #else 39 #define MYSQLI_ZEND_ARG_OBJ_INFO_LINK() ZEND_ARG_INFO(0, link) 40 #define MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() ZEND_ARG_INFO(0, result) 41 #define MYSQLI_ZEND_ARG_OBJ_INFO_STMT() ZEND_ARG_INFO(0, stmt) 42 #endif 43 44 ZEND_BEGIN_ARG_INFO(arginfo_mysqli_stmt_bind_result, 0) 45 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 46 ZEND_ARG_VARIADIC_INFO(1, vars) 47 ZEND_END_ARG_INFO() 48 49 ZEND_BEGIN_ARG_INFO(arginfo_mysqli_stmt_bind_param, 0) 50 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 51 ZEND_ARG_INFO(0, types) 52 ZEND_ARG_VARIADIC_INFO(1, vars) 53 ZEND_END_ARG_INFO() 54 55 ZEND_BEGIN_ARG_INFO(arginfo_class_mysqli_stmt_bind_result, 0) 56 ZEND_ARG_VARIADIC_INFO(1, vars) 57 ZEND_END_ARG_INFO() 58 59 ZEND_BEGIN_ARG_INFO(arginfo_class_mysqli_stmt_bind_param, 0) 60 ZEND_ARG_INFO(0, types) 61 ZEND_ARG_VARIADIC_INFO(1, vars) 62 ZEND_END_ARG_INFO() 63 64 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_poll, 0, 0, 4) 65 ZEND_ARG_ARRAY_INFO(1, read, 1) 66 ZEND_ARG_ARRAY_INFO(1, write, 1) 67 ZEND_ARG_ARRAY_INFO(1, error, 1) 68 ZEND_ARG_INFO(0, sec) 69 ZEND_ARG_INFO(0, usec) 70 ZEND_END_ARG_INFO() 71 72 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_no_params, 0, 0, 0) 73 ZEND_END_ARG_INFO() 74 75 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_only_link, 0, 0, 1) 76 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 77 ZEND_END_ARG_INFO() 78 79 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_autocommit, 0, 0, 2) 80 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 81 ZEND_ARG_INFO(0, mode) 82 ZEND_END_ARG_INFO() 83 84 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_autocommit, 0, 0, 1) 85 ZEND_ARG_INFO(0, mode) 86 ZEND_END_ARG_INFO() 87 88 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_begin_transaction, 0, 0, 1) 89 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 90 ZEND_ARG_INFO(0, flags) 91 ZEND_ARG_INFO(0, name) 92 ZEND_END_ARG_INFO() 93 94 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_begin_transaction, 0, 0, 0) 95 ZEND_ARG_INFO(0, flags) 96 ZEND_ARG_INFO(0, name) 97 ZEND_END_ARG_INFO() 98 99 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_savepoint, 0, 0, 2) 100 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 101 ZEND_ARG_INFO(0, name) 102 ZEND_END_ARG_INFO() 103 104 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_savepoint, 0, 0, 1) 105 ZEND_ARG_INFO(0, name) 106 ZEND_END_ARG_INFO() 107 108 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_release_savepoint, 0, 0, 2) 109 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 110 ZEND_ARG_INFO(0, name) 111 ZEND_END_ARG_INFO() 112 113 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_release_savepoint, 0, 0, 1) 114 ZEND_ARG_INFO(0, name) 115 ZEND_END_ARG_INFO() 116 117 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_commit, 0, 0, 1) 118 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 119 ZEND_ARG_INFO(0, flags) 120 ZEND_ARG_INFO(0, name) 121 ZEND_END_ARG_INFO() 122 123 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_commit, 0, 0, 0) 124 ZEND_ARG_INFO(0, flags) 125 ZEND_ARG_INFO(0, name) 126 ZEND_END_ARG_INFO() 127 128 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_rollback, 0, 0, 1) 129 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 130 ZEND_ARG_INFO(0, flags) 131 ZEND_ARG_INFO(0, name) 132 ZEND_END_ARG_INFO() 133 134 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_rollback, 0, 0, 0) 135 ZEND_ARG_INFO(0, flags) 136 ZEND_ARG_INFO(0, name) 137 ZEND_END_ARG_INFO() 138 139 140 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_store_result, 0, 0, 1) 141 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 142 ZEND_ARG_INFO(0, flags) 143 ZEND_END_ARG_INFO() 144 145 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_store_result, 0, 0, 0) 146 ZEND_ARG_INFO(0, flags) 147 ZEND_END_ARG_INFO() 148 149 150 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_change_user, 0, 0, 4) 151 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 152 ZEND_ARG_INFO(0, user) 153 ZEND_ARG_INFO(0, password) 154 ZEND_ARG_INFO(0, database) 155 ZEND_END_ARG_INFO() 156 157 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_change_user, 0, 0, 3) 158 ZEND_ARG_INFO(0, user) 159 ZEND_ARG_INFO(0, password) 160 ZEND_ARG_INFO(0, database) 161 ZEND_END_ARG_INFO() 162 163 164 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_connect, 0, 0, 0) 165 ZEND_ARG_INFO(0, host) 166 ZEND_ARG_INFO(0, user) 167 ZEND_ARG_INFO(0, password) 168 ZEND_ARG_INFO(0, database) 169 ZEND_ARG_INFO(0, port) 170 ZEND_ARG_INFO(0, socket) 171 ZEND_END_ARG_INFO() 172 173 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_real_connect, 0, 0, 1) 174 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 175 ZEND_ARG_INFO(0, host) 176 ZEND_ARG_INFO(0, user) 177 ZEND_ARG_INFO(0, password) 178 ZEND_ARG_INFO(0, database) 179 ZEND_ARG_INFO(0, port) 180 ZEND_ARG_INFO(0, socket) 181 ZEND_ARG_INFO(0, flags) 182 ZEND_END_ARG_INFO() 183 184 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_connect, 0, 0, 0) 185 ZEND_ARG_INFO(0, host) 186 ZEND_ARG_INFO(0, user) 187 ZEND_ARG_INFO(0, password) 188 ZEND_ARG_INFO(0, database) 189 ZEND_ARG_INFO(0, port) 190 ZEND_ARG_INFO(0, socket) 191 ZEND_ARG_INFO(0, flags) 192 ZEND_END_ARG_INFO() 193 194 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_only_result, 0, 0, 1) 195 MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() 196 ZEND_END_ARG_INFO() 197 198 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_only_statement, 0, 0, 1) 199 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 200 ZEND_END_ARG_INFO() 201 202 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_data_seek, 0, 0, 2) 203 MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() 204 ZEND_ARG_INFO(0, offset) 205 ZEND_END_ARG_INFO() 206 207 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_stmt_data_seek, 0, 0, 2) 208 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 209 ZEND_ARG_INFO(0, offset) 210 ZEND_END_ARG_INFO() 211 212 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_data_seek, 0, 0, 1) 213 ZEND_ARG_INFO(0, offset) 214 ZEND_END_ARG_INFO() 215 216 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_debug, 0, 0, 1) 217 ZEND_ARG_INFO(0, debug_options) 218 ZEND_END_ARG_INFO() 219 220 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_result_and_fieldnr, 0, 0, 2) 221 MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() 222 ZEND_ARG_INFO(0, field_nr) 223 ZEND_END_ARG_INFO() 224 225 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_and_fieldnr, 0, 0, 1) 226 ZEND_ARG_INFO(0, field_nr) 227 ZEND_END_ARG_INFO() 228 229 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_fetch_array, 0, 0, 1) 230 MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() 231 ZEND_ARG_INFO(0, result_type) 232 ZEND_END_ARG_INFO() 233 234 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_fetch_array, 0, 0, 0) 235 ZEND_ARG_INFO(0, result_type) 236 ZEND_END_ARG_INFO() 237 238 239 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_fetch_object, 0, 0, 1) 240 MYSQLI_ZEND_ARG_OBJ_INFO_RESULT() 241 ZEND_ARG_INFO(0, class_name) 242 ZEND_ARG_ARRAY_INFO(0, params, 0) 243 ZEND_END_ARG_INFO() 244 245 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_fetch_object, 0, 0, 0) 246 ZEND_ARG_INFO(0, class_name) 247 ZEND_ARG_ARRAY_INFO(0, params, 0) 248 ZEND_END_ARG_INFO() 249 250 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_kill, 0, 0, 2) 251 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 252 ZEND_ARG_INFO(0, connection_id) 253 ZEND_END_ARG_INFO() 254 255 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_kill, 0, 0, 1) 256 ZEND_ARG_INFO(0, connection_id) 257 ZEND_END_ARG_INFO() 258 259 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_query, 0, 0, 2) 260 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 261 ZEND_ARG_INFO(0, query) 262 ZEND_ARG_INFO(0, resultmode) 263 ZEND_END_ARG_INFO() 264 265 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_multi_query, 0, 0, 1) 266 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 267 ZEND_ARG_INFO(0, query) 268 ZEND_END_ARG_INFO() 269 270 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_real_query, 0, 0, 1) 271 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 272 ZEND_ARG_INFO(0, query) 273 ZEND_END_ARG_INFO() 274 275 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_prepare, 0, 0, 2) 276 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 277 ZEND_ARG_INFO(0, query) 278 ZEND_END_ARG_INFO() 279 280 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_stmt_prepare, 0, 0, 2) 281 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 282 ZEND_ARG_INFO(0, query) 283 ZEND_END_ARG_INFO() 284 285 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_query, 0, 0, 1) 286 ZEND_ARG_INFO(0, query) 287 ZEND_ARG_INFO(0, resultmode) 288 ZEND_END_ARG_INFO() 289 290 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_prepare, 0, 0, 1) 291 ZEND_ARG_INFO(0, query) 292 ZEND_END_ARG_INFO() 293 294 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_multi_query, 0, 0, 1) 295 ZEND_ARG_INFO(0, query) 296 ZEND_END_ARG_INFO() 297 298 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_query, 0, 0, 1) 299 ZEND_ARG_INFO(0, query) 300 ZEND_END_ARG_INFO() 301 302 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_options, 0, 0, 3) 303 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 304 ZEND_ARG_INFO(0, option) 305 ZEND_ARG_INFO(0, value) 306 ZEND_END_ARG_INFO() 307 308 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_options, 0, 0, 2) 309 ZEND_ARG_INFO(0, option) 310 ZEND_ARG_INFO(0, value) 311 ZEND_END_ARG_INFO() 312 313 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_report, 0, 0, 1) 314 ZEND_ARG_INFO(0, flags) 315 ZEND_END_ARG_INFO() 316 317 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_real_escape_string, 0, 0, 2) 318 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 319 ZEND_ARG_INFO(0, string_to_escape) 320 ZEND_END_ARG_INFO() 321 322 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_escape_string, 0, 0, 1) 323 ZEND_ARG_INFO(0, string_to_escape) 324 ZEND_END_ARG_INFO() 325 326 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_select_db, 0, 0, 2) 327 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 328 ZEND_ARG_INFO(0, database) 329 ZEND_END_ARG_INFO() 330 331 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_select_db, 0, 0, 1) 332 ZEND_ARG_INFO(0, database) 333 ZEND_END_ARG_INFO() 334 335 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_set_charset, 0, 0, 2) 336 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 337 ZEND_ARG_INFO(0, charset) 338 ZEND_END_ARG_INFO() 339 340 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_set_charset, 0, 0, 1) 341 ZEND_ARG_INFO(0, charset) 342 ZEND_END_ARG_INFO() 343 344 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_stmt_attr_get, 0, 0, 2) 345 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 346 ZEND_ARG_INFO(0, attribute) 347 ZEND_END_ARG_INFO() 348 349 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_attr_get, 0, 0, 1) 350 ZEND_ARG_INFO(0, attribute) 351 ZEND_END_ARG_INFO() 352 353 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_stmt_attr_set, 0, 0, 3) 354 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 355 ZEND_ARG_INFO(0, attribute) 356 ZEND_ARG_INFO(0, value) 357 ZEND_END_ARG_INFO() 358 359 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_attr_set, 0, 0, 2) 360 ZEND_ARG_INFO(0, attribute) 361 ZEND_ARG_INFO(0, value) 362 ZEND_END_ARG_INFO() 363 364 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_stmt_send_long_data, 0, 0, 3) 365 MYSQLI_ZEND_ARG_OBJ_INFO_STMT() 366 ZEND_ARG_INFO(0, param_nr) 367 ZEND_ARG_INFO(0, data) 368 ZEND_END_ARG_INFO() 369 370 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_send_long_data, 0, 0, 2) 371 ZEND_ARG_INFO(0, param_nr) 372 ZEND_ARG_INFO(0, data) 373 ZEND_END_ARG_INFO() 374 375 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_ssl_set, 0, 0, 6) 376 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 377 ZEND_ARG_INFO(0, key) 378 ZEND_ARG_INFO(0, cert) 379 ZEND_ARG_INFO(0, certificate_authority) 380 ZEND_ARG_INFO(0, certificate_authority_path) 381 ZEND_ARG_INFO(0, cipher) 382 ZEND_END_ARG_INFO() 383 384 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_ssl_set, 0, 0, 5) 385 ZEND_ARG_INFO(0, key) 386 ZEND_ARG_INFO(0, cert) 387 ZEND_ARG_INFO(0, certificate_authority) 388 ZEND_ARG_INFO(0, certificate_authority_path) 389 ZEND_ARG_INFO(0, cipher) 390 ZEND_END_ARG_INFO() 391 392 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_refresh, 0, 0, 2) 393 MYSQLI_ZEND_ARG_OBJ_INFO_LINK() 394 ZEND_ARG_INFO(0, options) 395 ZEND_END_ARG_INFO() 396 397 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_refresh, 0, 0, 1) 398 ZEND_ARG_INFO(0, options) 399 ZEND_END_ARG_INFO() 400 401 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_no_options, 0, 0, 0) 402 ZEND_END_ARG_INFO() 403 404 405 /* {{{ mysqli_functions[] 406 * 407 * Every user visible function must have an entry in mysqli_functions[]. 408 */ 409 const zend_function_entry mysqli_functions[] = { 410 PHP_FE(mysqli_affected_rows, arginfo_mysqli_only_link) 411 PHP_FE(mysqli_autocommit, arginfo_mysqli_autocommit) 412 PHP_FE(mysqli_begin_transaction, arginfo_mysqli_begin_transaction) 413 PHP_FE(mysqli_change_user, arginfo_mysqli_change_user) 414 PHP_FE(mysqli_character_set_name, arginfo_mysqli_only_link) 415 PHP_FE(mysqli_close, arginfo_mysqli_only_link) 416 PHP_FE(mysqli_commit, arginfo_mysqli_commit) 417 PHP_FE(mysqli_connect, arginfo_mysqli_connect) 418 PHP_FE(mysqli_connect_errno, arginfo_mysqli_no_params) 419 PHP_FE(mysqli_connect_error, arginfo_mysqli_no_params) 420 PHP_FE(mysqli_data_seek, arginfo_mysqli_data_seek) 421 PHP_FE(mysqli_dump_debug_info, arginfo_mysqli_only_link) 422 PHP_FE(mysqli_debug, arginfo_mysqli_debug) 423 #if defined(HAVE_EMBEDDED_MYSQLI) 424 PHP_FE(mysqli_embedded_server_end, NULL) 425 PHP_FE(mysqli_embedded_server_start, NULL) 426 #endif 427 PHP_FE(mysqli_errno, arginfo_mysqli_only_link) 428 PHP_FE(mysqli_error, arginfo_mysqli_only_link) 429 PHP_FE(mysqli_error_list, arginfo_mysqli_only_link) 430 PHP_FE(mysqli_stmt_execute, arginfo_mysqli_only_statement) 431 PHP_FALIAS(mysqli_execute, mysqli_stmt_execute, arginfo_mysqli_only_statement) 432 PHP_FE(mysqli_fetch_field, arginfo_mysqli_only_result) 433 PHP_FE(mysqli_fetch_fields, arginfo_mysqli_only_result) 434 PHP_FE(mysqli_fetch_field_direct, arginfo_mysqli_result_and_fieldnr) 435 PHP_FE(mysqli_fetch_lengths, arginfo_mysqli_only_result) 436 #ifdef MYSQLI_USE_MYSQLND 437 PHP_FE(mysqli_fetch_all, arginfo_mysqli_fetch_array) 438 #endif 439 PHP_FE(mysqli_fetch_array, arginfo_mysqli_fetch_array) 440 PHP_FE(mysqli_fetch_assoc, arginfo_mysqli_only_result) 441 PHP_FE(mysqli_fetch_object, arginfo_mysqli_fetch_object) 442 PHP_FE(mysqli_fetch_row, arginfo_mysqli_only_result) 443 PHP_FE(mysqli_field_count, arginfo_mysqli_only_link) 444 PHP_FE(mysqli_field_seek, arginfo_mysqli_result_and_fieldnr) 445 PHP_FE(mysqli_field_tell, arginfo_mysqli_only_result) 446 PHP_FE(mysqli_free_result, arginfo_mysqli_only_result) 447 #if defined(MYSQLI_USE_MYSQLND) 448 PHP_FE(mysqli_get_connection_stats, arginfo_mysqli_only_link) 449 PHP_FE(mysqli_get_client_stats, arginfo_mysqli_no_params) 450 #endif 451 #ifdef HAVE_MYSQLI_GET_CHARSET 452 PHP_FE(mysqli_get_charset, arginfo_mysqli_only_link) 453 #endif 454 PHP_FE(mysqli_get_client_info, arginfo_mysqli_no_options) 455 PHP_FE(mysqli_get_client_version, arginfo_mysqli_only_link) 456 PHP_FE(mysqli_get_links_stats, arginfo_mysqli_no_options) 457 PHP_FE(mysqli_get_host_info, arginfo_mysqli_only_link) 458 PHP_FE(mysqli_get_proto_info, arginfo_mysqli_only_link) 459 PHP_FE(mysqli_get_server_info, arginfo_mysqli_only_link) 460 PHP_FE(mysqli_get_server_version, arginfo_mysqli_only_link) 461 PHP_FE(mysqli_get_warnings, arginfo_mysqli_only_link) 462 PHP_FE(mysqli_init, arginfo_mysqli_no_params) 463 PHP_FE(mysqli_info, arginfo_mysqli_only_link) 464 PHP_FE(mysqli_insert_id, arginfo_mysqli_only_link) 465 PHP_FE(mysqli_kill, arginfo_mysqli_kill) 466 PHP_FE(mysqli_more_results, arginfo_mysqli_only_link) 467 PHP_FE(mysqli_multi_query, arginfo_mysqli_multi_query) 468 PHP_FE(mysqli_next_result, arginfo_mysqli_only_link) 469 PHP_FE(mysqli_num_fields, arginfo_mysqli_only_result) 470 PHP_FE(mysqli_num_rows, arginfo_mysqli_only_result) 471 PHP_FE(mysqli_options, arginfo_mysqli_options) 472 PHP_FE(mysqli_ping, arginfo_mysqli_only_link) 473 #if defined(MYSQLI_USE_MYSQLND) 474 PHP_FE(mysqli_poll, arginfo_mysqli_poll) 475 #endif 476 PHP_FE(mysqli_prepare, arginfo_mysqli_prepare) 477 PHP_FE(mysqli_report, arginfo_mysqli_report) 478 PHP_FE(mysqli_query, arginfo_mysqli_query) 479 PHP_FE(mysqli_real_connect, arginfo_mysqli_real_connect) 480 PHP_FE(mysqli_real_escape_string, arginfo_mysqli_real_escape_string) 481 PHP_FE(mysqli_real_query, arginfo_mysqli_real_query) 482 #if defined(MYSQLI_USE_MYSQLND) 483 PHP_FE(mysqli_reap_async_query, arginfo_mysqli_only_link) 484 #endif 485 PHP_FE(mysqli_release_savepoint, arginfo_mysqli_release_savepoint) 486 PHP_FE(mysqli_rollback, arginfo_mysqli_rollback) 487 PHP_FE(mysqli_savepoint, arginfo_mysqli_savepoint) 488 PHP_FE(mysqli_select_db, arginfo_mysqli_select_db) 489 #ifdef HAVE_MYSQLI_SET_CHARSET 490 PHP_FE(mysqli_set_charset, arginfo_mysqli_set_charset) 491 #endif 492 PHP_FE(mysqli_stmt_affected_rows, arginfo_mysqli_only_statement) 493 PHP_FE(mysqli_stmt_attr_get, arginfo_mysqli_stmt_attr_get) 494 PHP_FE(mysqli_stmt_attr_set, arginfo_mysqli_stmt_attr_set) 495 PHP_FE(mysqli_stmt_bind_param, arginfo_mysqli_stmt_bind_param) 496 PHP_FE(mysqli_stmt_bind_result, arginfo_mysqli_stmt_bind_result) 497 PHP_FE(mysqli_stmt_close, arginfo_mysqli_only_statement) 498 PHP_FE(mysqli_stmt_data_seek, arginfo_mysqli_stmt_data_seek) 499 PHP_FE(mysqli_stmt_errno, arginfo_mysqli_only_statement) 500 PHP_FE(mysqli_stmt_error, arginfo_mysqli_only_statement) 501 PHP_FE(mysqli_stmt_error_list, arginfo_mysqli_only_statement) 502 PHP_FE(mysqli_stmt_fetch, arginfo_mysqli_only_statement) 503 PHP_FE(mysqli_stmt_field_count, arginfo_mysqli_only_statement) 504 PHP_FE(mysqli_stmt_free_result, arginfo_mysqli_only_statement) 505 #if defined(MYSQLI_USE_MYSQLND) 506 PHP_FE(mysqli_stmt_get_result, arginfo_mysqli_only_statement) 507 #endif 508 PHP_FE(mysqli_stmt_get_warnings, arginfo_mysqli_only_statement) 509 PHP_FE(mysqli_stmt_init, arginfo_mysqli_only_link) 510 PHP_FE(mysqli_stmt_insert_id, arginfo_mysqli_only_statement) 511 #if defined(MYSQLI_USE_MYSQLND) 512 PHP_FE(mysqli_stmt_more_results, arginfo_mysqli_only_statement) 513 PHP_FE(mysqli_stmt_next_result, arginfo_mysqli_only_statement) 514 #endif 515 PHP_FE(mysqli_stmt_num_rows, arginfo_mysqli_only_statement) 516 PHP_FE(mysqli_stmt_param_count, arginfo_mysqli_only_statement) 517 PHP_FE(mysqli_stmt_prepare, arginfo_mysqli_stmt_prepare) 518 PHP_FE(mysqli_stmt_reset, arginfo_mysqli_only_statement) 519 PHP_FE(mysqli_stmt_result_metadata, arginfo_mysqli_only_statement) 520 PHP_FE(mysqli_stmt_send_long_data, arginfo_mysqli_stmt_send_long_data) 521 PHP_FE(mysqli_stmt_store_result, arginfo_mysqli_only_statement) 522 PHP_FE(mysqli_stmt_sqlstate, arginfo_mysqli_only_statement) 523 PHP_FE(mysqli_sqlstate, arginfo_mysqli_only_link) 524 PHP_FE(mysqli_ssl_set, arginfo_mysqli_ssl_set) 525 PHP_FE(mysqli_stat, arginfo_mysqli_only_link) 526 PHP_FE(mysqli_store_result, arginfo_mysqli_store_result) 527 PHP_FE(mysqli_thread_id, arginfo_mysqli_only_link) 528 PHP_FE(mysqli_thread_safe, arginfo_mysqli_no_params) 529 PHP_FE(mysqli_use_result, arginfo_mysqli_only_link) 530 PHP_FE(mysqli_warning_count, arginfo_mysqli_only_link) 531 532 PHP_FE(mysqli_refresh, arginfo_mysqli_refresh) 533 534 /* Aliases */ 535 PHP_FALIAS(mysqli_escape_string, mysqli_real_escape_string, arginfo_mysqli_query) 536 PHP_FALIAS(mysqli_set_opt, mysqli_options, NULL) 537 538 PHP_FE_END 539 }; 540 /* }}} */ 541 542 /* {{{ mysqli_link_methods[] 543 * 544 * Every user visible function must have an entry in mysqli_functions[]. 545 */ 546 const zend_function_entry mysqli_link_methods[] = { 547 PHP_FALIAS(autocommit, mysqli_autocommit, arginfo_class_mysqli_autocommit) 548 PHP_FALIAS(begin_transaction, mysqli_begin_transaction, arginfo_class_mysqli_begin_transaction) 549 PHP_FALIAS(change_user,mysqli_change_user, arginfo_class_mysqli_change_user) 550 PHP_FALIAS(character_set_name, mysqli_character_set_name, arginfo_mysqli_no_params) 551 PHP_FALIAS(close, mysqli_close, arginfo_mysqli_no_params) 552 PHP_FALIAS(commit, mysqli_commit, arginfo_class_mysqli_commit) 553 PHP_FALIAS(connect, mysqli_connect, arginfo_mysqli_connect) 554 PHP_FALIAS(dump_debug_info, mysqli_dump_debug_info, arginfo_mysqli_no_params) 555 PHP_FALIAS(debug, mysqli_debug, arginfo_mysqli_debug) 556 #ifdef HAVE_MYSQLI_GET_CHARSET 557 PHP_FALIAS(get_charset, mysqli_get_charset, arginfo_mysqli_no_params) 558 #endif 559 PHP_FALIAS(get_client_info, mysqli_get_client_info, arginfo_mysqli_no_params) 560 #if defined(MYSQLI_USE_MYSQLND) 561 PHP_FALIAS(get_connection_stats, mysqli_get_connection_stats, arginfo_mysqli_no_params) 562 #endif 563 PHP_FALIAS(get_server_info, mysqli_get_server_info, arginfo_mysqli_no_params) 564 PHP_FALIAS(get_warnings, mysqli_get_warnings, arginfo_mysqli_no_params) 565 PHP_FALIAS(init,mysqli_init_method, arginfo_mysqli_no_params) 566 PHP_FALIAS(kill,mysqli_kill, arginfo_class_mysqli_kill) 567 PHP_FALIAS(multi_query, mysqli_multi_query, arginfo_class_mysqli_multi_query) 568 PHP_FALIAS(__construct, mysqli_link_construct, arginfo_mysqli_connect) 569 PHP_FALIAS(more_results, mysqli_more_results, arginfo_mysqli_no_params) 570 PHP_FALIAS(next_result, mysqli_next_result, arginfo_mysqli_no_params) 571 PHP_FALIAS(options, mysqli_options, arginfo_class_mysqli_options) 572 PHP_FALIAS(ping, mysqli_ping, arginfo_mysqli_no_params) 573 #if defined(MYSQLI_USE_MYSQLND) 574 ZEND_FENTRY(poll, ZEND_FN(mysqli_poll), arginfo_mysqli_poll, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) 575 #endif 576 PHP_FALIAS(prepare, mysqli_prepare, arginfo_class_mysqli_prepare) 577 PHP_FALIAS(query, mysqli_query, arginfo_class_mysqli_query) 578 PHP_FALIAS(real_connect, mysqli_real_connect, arginfo_class_mysqli_real_connect) 579 PHP_FALIAS(real_escape_string, mysqli_real_escape_string, arginfo_class_mysqli_real_escape_string) 580 #if defined(MYSQLI_USE_MYSQLND) 581 PHP_FALIAS(reap_async_query, mysqli_reap_async_query, arginfo_mysqli_no_params) 582 #endif 583 PHP_FALIAS(escape_string, mysqli_real_escape_string, arginfo_class_mysqli_real_escape_string) 584 PHP_FALIAS(real_query, mysqli_real_query, arginfo_class_mysqli_real_query) 585 PHP_FALIAS(release_savepoint, mysqli_release_savepoint, arginfo_class_mysqli_release_savepoint) 586 PHP_FALIAS(rollback, mysqli_rollback, arginfo_class_mysqli_rollback) 587 PHP_FALIAS(savepoint, mysqli_savepoint, arginfo_class_mysqli_savepoint) 588 PHP_FALIAS(select_db,mysqli_select_db, arginfo_class_mysqli_select_db) 589 #ifdef HAVE_MYSQLI_SET_CHARSET 590 PHP_FALIAS(set_charset, mysqli_set_charset, arginfo_class_mysqli_set_charset) 591 #endif 592 PHP_FALIAS(set_opt, mysqli_options, arginfo_class_mysqli_options) 593 PHP_FALIAS(ssl_set, mysqli_ssl_set, arginfo_class_mysqli_ssl_set) 594 PHP_FALIAS(stat, mysqli_stat, arginfo_mysqli_no_params) 595 PHP_FALIAS(stmt_init, mysqli_stmt_init, arginfo_mysqli_no_params) 596 PHP_FALIAS(store_result, mysqli_store_result, arginfo_class_store_result) 597 PHP_FALIAS(thread_safe, mysqli_thread_safe, arginfo_mysqli_no_params) 598 PHP_FALIAS(use_result, mysqli_use_result, arginfo_mysqli_no_params) 599 PHP_FALIAS(refresh,mysqli_refresh, arginfo_class_mysqli_refresh) 600 PHP_FE_END 601 }; 602 /* }}} */ 603 604 /* {{{ mysqli_result_methods[] 605 * 606 * Every user visible function must have an entry in mysqli_result_functions[]. 607 */ 608 const zend_function_entry mysqli_result_methods[] = { 609 PHP_FALIAS(__construct, mysqli_result_construct, NULL) 610 PHP_FALIAS(close, mysqli_free_result, arginfo_mysqli_no_params) 611 PHP_FALIAS(free, mysqli_free_result, arginfo_mysqli_no_params) 612 PHP_FALIAS(data_seek, mysqli_data_seek, arginfo_class_mysqli_data_seek) 613 PHP_FALIAS(fetch_field, mysqli_fetch_field, arginfo_mysqli_no_params) 614 PHP_FALIAS(fetch_fields, mysqli_fetch_fields, arginfo_mysqli_no_params) 615 PHP_FALIAS(fetch_field_direct, mysqli_fetch_field_direct, arginfo_class_mysqli_result_and_fieldnr) 616 #if defined(MYSQLI_USE_MYSQLND) 617 PHP_FALIAS(fetch_all, mysqli_fetch_all, arginfo_class_mysqli_fetch_array) 618 #endif 619 PHP_FALIAS(fetch_array, mysqli_fetch_array, arginfo_class_mysqli_fetch_array) 620 PHP_FALIAS(fetch_assoc, mysqli_fetch_assoc, arginfo_mysqli_no_params) 621 PHP_FALIAS(fetch_object,mysqli_fetch_object, arginfo_class_mysqli_fetch_object) 622 PHP_FALIAS(fetch_row, mysqli_fetch_row, arginfo_mysqli_no_params) 623 PHP_FALIAS(field_seek, mysqli_field_seek, arginfo_class_mysqli_result_and_fieldnr) 624 PHP_FALIAS(free_result, mysqli_free_result, arginfo_mysqli_no_params) 625 PHP_FE_END 626 }; 627 /* }}} */ 628 629 /* {{{ mysqli_stmt_methods[] 630 * 631 * Every user visible function must have an entry in mysqli_stmt_functions[]. 632 */ 633 const zend_function_entry mysqli_stmt_methods[] = { 634 PHP_FALIAS(__construct, mysqli_stmt_construct, NULL) 635 PHP_FALIAS(attr_get, mysqli_stmt_attr_get, arginfo_class_mysqli_stmt_attr_get) 636 PHP_FALIAS(attr_set,mysqli_stmt_attr_set, arginfo_class_mysqli_stmt_attr_set) 637 PHP_FALIAS(bind_param,mysqli_stmt_bind_param, arginfo_class_mysqli_stmt_bind_param) 638 PHP_FALIAS(bind_result,mysqli_stmt_bind_result, arginfo_class_mysqli_stmt_bind_result) 639 PHP_FALIAS(close, mysqli_stmt_close, arginfo_mysqli_no_params) 640 PHP_FALIAS(data_seek, mysqli_stmt_data_seek, arginfo_class_mysqli_data_seek) 641 PHP_FALIAS(execute, mysqli_stmt_execute, arginfo_mysqli_no_params) 642 PHP_FALIAS(fetch, mysqli_stmt_fetch, arginfo_mysqli_no_params) 643 PHP_FALIAS(get_warnings, mysqli_stmt_get_warnings, arginfo_mysqli_no_params) 644 PHP_FALIAS(result_metadata, mysqli_stmt_result_metadata, arginfo_mysqli_no_params) 645 #if defined(MYSQLI_USE_MYSQLND) 646 PHP_FALIAS(more_results, mysqli_stmt_more_results, arginfo_mysqli_no_params) 647 PHP_FALIAS(next_result, mysqli_stmt_next_result, arginfo_mysqli_no_params) 648 #endif 649 PHP_FALIAS(num_rows, mysqli_stmt_num_rows, arginfo_mysqli_no_params) 650 PHP_FALIAS(send_long_data, mysqli_stmt_send_long_data, arginfo_class_mysqli_stmt_send_long_data) 651 PHP_FALIAS(free_result, mysqli_stmt_free_result, arginfo_mysqli_no_params) 652 PHP_FALIAS(reset, mysqli_stmt_reset, arginfo_mysqli_no_params) 653 PHP_FALIAS(prepare, mysqli_stmt_prepare, arginfo_class_mysqli_prepare) 654 PHP_FALIAS(store_result, mysqli_stmt_store_result, arginfo_mysqli_no_params) 655 #if defined(MYSQLI_USE_MYSQLND) 656 PHP_FALIAS(get_result, mysqli_stmt_get_result, arginfo_mysqli_no_params) 657 #endif 658 PHP_FE_END 659 }; 660 /* }}} */ 661 662 /* 663 * Local variables: 664 * tab-width: 4 665 * c-basic-offset: 4 666 * End: 667 * vim600: noet sw=4 ts=4 fdm=marker 668 * vim<600: noet sw=4 ts=4 669 */ 670