mysqli_fe.c 25 KB

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