PageRenderTime 41ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/hphp/runtime/ext/pdo/ext_pdo.h

https://gitlab.com/iranjith4/hhvm
C Header | 217 lines | 183 code | 12 blank | 22 comment | 0 complexity | 64bc8305dfddfc8a70a5c4742fdf11e2 MD5 | raw file
  1. /*
  2. +----------------------------------------------------------------------+
  3. | HipHop for PHP |
  4. +----------------------------------------------------------------------+
  5. | Copyright (c) 2010-2016 Facebook, Inc. (http://www.facebook.com) |
  6. | Copyright (c) 1997-2010 The PHP Group |
  7. +----------------------------------------------------------------------+
  8. | This source file is subject to version 3.01 of the PHP license, |
  9. | that is bundled with this package in the file LICENSE, and is |
  10. | available through the world-wide-web at the following url: |
  11. | http://www.php.net/license/3_01.txt |
  12. | If you did not receive a copy of the PHP license and are unable to |
  13. | obtain it through the world-wide-web, please send a note to |
  14. | license@php.net so we can mail you a copy immediately. |
  15. +----------------------------------------------------------------------+
  16. */
  17. #ifndef incl_HPHP_EXT_PDO_H_
  18. #define incl_HPHP_EXT_PDO_H_
  19. #include "hphp/runtime/ext/extension.h"
  20. #include "hphp/runtime/ext/pdo/pdo_driver.h"
  21. namespace HPHP {
  22. ///////////////////////////////////////////////////////////////////////////////
  23. Array f_pdo_drivers();
  24. extern const int64_t q_PDO$$PARAM_BOOL;
  25. extern const int64_t q_PDO$$PARAM_NULL;
  26. extern const int64_t q_PDO$$PARAM_INT;
  27. extern const int64_t q_PDO$$PARAM_STR;
  28. extern const int64_t q_PDO$$PARAM_LOB;
  29. extern const int64_t q_PDO$$PARAM_STMT;
  30. extern const int64_t q_PDO$$PARAM_INPUT_OUTPUT;
  31. extern const int64_t q_PDO$$PARAM_EVT_ALLOC;
  32. extern const int64_t q_PDO$$PARAM_EVT_FREE;
  33. extern const int64_t q_PDO$$PARAM_EVT_EXEC_PRE;
  34. extern const int64_t q_PDO$$PARAM_EVT_EXEC_POST;
  35. extern const int64_t q_PDO$$PARAM_EVT_FETCH_PRE;
  36. extern const int64_t q_PDO$$PARAM_EVT_FETCH_POST;
  37. extern const int64_t q_PDO$$PARAM_EVT_NORMALIZE;
  38. extern const int64_t q_PDO$$FETCH_USE_DEFAULT;
  39. extern const int64_t q_PDO$$FETCH_LAZY;
  40. extern const int64_t q_PDO$$FETCH_ASSOC;
  41. extern const int64_t q_PDO$$FETCH_NUM;
  42. extern const int64_t q_PDO$$FETCH_BOTH;
  43. extern const int64_t q_PDO$$FETCH_OBJ;
  44. extern const int64_t q_PDO$$FETCH_BOUND;
  45. extern const int64_t q_PDO$$FETCH_COLUMN;
  46. extern const int64_t q_PDO$$FETCH_CLASS;
  47. extern const int64_t q_PDO$$FETCH_INTO;
  48. extern const int64_t q_PDO$$FETCH_FUNC;
  49. extern const int64_t q_PDO$$FETCH_GROUP;
  50. extern const int64_t q_PDO$$FETCH_UNIQUE;
  51. extern const int64_t q_PDO$$FETCH_KEY_PAIR;
  52. extern const int64_t q_PDO$$FETCH_CLASSTYPE;
  53. extern const int64_t q_PDO$$FETCH_SERIALIZE;
  54. extern const int64_t q_PDO$$FETCH_PROPS_LATE;
  55. extern const int64_t q_PDO$$FETCH_NAMED;
  56. extern const int64_t q_PDO$$ATTR_AUTOCOMMIT;
  57. extern const int64_t q_PDO$$ATTR_PREFETCH;
  58. extern const int64_t q_PDO$$ATTR_TIMEOUT;
  59. extern const int64_t q_PDO$$ATTR_ERRMODE;
  60. extern const int64_t q_PDO$$ATTR_SERVER_VERSION;
  61. extern const int64_t q_PDO$$ATTR_CLIENT_VERSION;
  62. extern const int64_t q_PDO$$ATTR_SERVER_INFO;
  63. extern const int64_t q_PDO$$ATTR_CONNECTION_STATUS;
  64. extern const int64_t q_PDO$$ATTR_CASE;
  65. extern const int64_t q_PDO$$ATTR_CURSOR_NAME;
  66. extern const int64_t q_PDO$$ATTR_CURSOR;
  67. extern const int64_t q_PDO$$ATTR_ORACLE_NULLS;
  68. extern const int64_t q_PDO$$ATTR_PERSISTENT;
  69. extern const int64_t q_PDO$$ATTR_STATEMENT_CLASS;
  70. extern const int64_t q_PDO$$ATTR_FETCH_TABLE_NAMES;
  71. extern const int64_t q_PDO$$ATTR_FETCH_CATALOG_NAMES;
  72. extern const int64_t q_PDO$$ATTR_DRIVER_NAME;
  73. extern const int64_t q_PDO$$ATTR_STRINGIFY_FETCHES;
  74. extern const int64_t q_PDO$$ATTR_MAX_COLUMN_LEN;
  75. extern const int64_t q_PDO$$ATTR_EMULATE_PREPARES;
  76. extern const int64_t q_PDO$$ATTR_DEFAULT_FETCH_MODE;
  77. extern const int64_t q_PDO$$ERRMODE_SILENT;
  78. extern const int64_t q_PDO$$ERRMODE_WARNING;
  79. extern const int64_t q_PDO$$ERRMODE_EXCEPTION;
  80. extern const int64_t q_PDO$$CASE_NATURAL;
  81. extern const int64_t q_PDO$$CASE_LOWER;
  82. extern const int64_t q_PDO$$CASE_UPPER;
  83. extern const int64_t q_PDO$$NULL_NATURAL;
  84. extern const int64_t q_PDO$$NULL_EMPTY_STRING;
  85. extern const int64_t q_PDO$$NULL_TO_STRING;
  86. extern const int64_t q_PDO$$FETCH_ORI_NEXT;
  87. extern const int64_t q_PDO$$FETCH_ORI_PRIOR;
  88. extern const int64_t q_PDO$$FETCH_ORI_FIRST;
  89. extern const int64_t q_PDO$$FETCH_ORI_LAST;
  90. extern const int64_t q_PDO$$FETCH_ORI_ABS;
  91. extern const int64_t q_PDO$$FETCH_ORI_REL;
  92. extern const int64_t q_PDO$$CURSOR_FWDONLY;
  93. extern const int64_t q_PDO$$CURSOR_SCROLL;
  94. extern const int64_t q_PDO$$MYSQL_ATTR_USE_BUFFERED_QUERY;
  95. extern const int64_t q_PDO$$MYSQL_ATTR_LOCAL_INFILE;
  96. extern const int64_t q_PDO$$MYSQL_ATTR_MAX_BUFFER_SIZE;
  97. extern const int64_t q_PDO$$MYSQL_ATTR_INIT_COMMAND;
  98. extern const int64_t q_PDO$$MYSQL_ATTR_READ_DEFAULT_FILE;
  99. extern const int64_t q_PDO$$MYSQL_ATTR_READ_DEFAULT_GROUP;
  100. extern const int64_t q_PDO$$MYSQL_ATTR_COMPRESS;
  101. extern const int64_t q_PDO$$MYSQL_ATTR_DIRECT_QUERY;
  102. extern const int64_t q_PDO$$MYSQL_ATTR_FOUND_ROWS;
  103. extern const int64_t q_PDO$$MYSQL_ATTR_IGNORE_SPACE;
  104. extern const StaticString q_PDO$$ERR_NONE;
  105. const StaticString s_PARAM_BOOL("PARAM_BOOL");
  106. const StaticString s_PARAM_NULL("PARAM_NULL");
  107. const StaticString s_PARAM_INT("PARAM_INT");
  108. const StaticString s_PARAM_STR("PARAM_STR");
  109. const StaticString s_PARAM_LOB("PARAM_LOB");
  110. const StaticString s_PARAM_STMT("PARAM_STMT");
  111. const StaticString s_PARAM_INPUT_OUTPUT("PARAM_INPUT_OUTPUT");
  112. const StaticString s_PARAM_EVT_ALLOC("PARAM_EVT_ALLOC");
  113. const StaticString s_PARAM_EVT_FREE("PARAM_EVT_FREE");
  114. const StaticString s_PARAM_EVT_EXEC_PRE("PARAM_EVT_EXEC_PRE");
  115. const StaticString s_PARAM_EVT_EXEC_POST("PARAM_EVT_EXEC_POST");
  116. const StaticString s_PARAM_EVT_FETCH_PRE("PARAM_EVT_FETCH_PRE");
  117. const StaticString s_PARAM_EVT_FETCH_POST("PARAM_EVT_FETCH_POST");
  118. const StaticString s_PARAM_EVT_NORMALIZE("PARAM_EVT_NORMALIZE");
  119. const StaticString s_FETCH_USE_DEFAULT("FETCH_USE_DEFAULT");
  120. const StaticString s_FETCH_LAZY("FETCH_LAZY");
  121. const StaticString s_FETCH_ASSOC("FETCH_ASSOC");
  122. const StaticString s_FETCH_NUM("FETCH_NUM");
  123. const StaticString s_FETCH_BOTH("FETCH_BOTH");
  124. const StaticString s_FETCH_OBJ("FETCH_OBJ");
  125. const StaticString s_FETCH_BOUND("FETCH_BOUND");
  126. const StaticString s_FETCH_COLUMN("FETCH_COLUMN");
  127. const StaticString s_FETCH_CLASS("FETCH_CLASS");
  128. const StaticString s_FETCH_INTO("FETCH_INTO");
  129. const StaticString s_FETCH_FUNC("FETCH_FUNC");
  130. const StaticString s_FETCH_GROUP("FETCH_GROUP");
  131. const StaticString s_FETCH_UNIQUE("FETCH_UNIQUE");
  132. const StaticString s_FETCH_KEY_PAIR("FETCH_KEY_PAIR");
  133. const StaticString s_FETCH_CLASSTYPE("FETCH_CLASSTYPE");
  134. const StaticString s_FETCH_SERIALIZE("FETCH_SERIALIZE");
  135. const StaticString s_FETCH_PROPS_LATE("FETCH_PROPS_LATE");
  136. const StaticString s_FETCH_NAMED("FETCH_NAMED");
  137. const StaticString s_ATTR_AUTOCOMMIT("ATTR_AUTOCOMMIT");
  138. const StaticString s_ATTR_PREFETCH("ATTR_PREFETCH");
  139. const StaticString s_ATTR_TIMEOUT("ATTR_TIMEOUT");
  140. const StaticString s_ATTR_ERRMODE("ATTR_ERRMODE");
  141. const StaticString s_ATTR_SERVER_VERSION("ATTR_SERVER_VERSION");
  142. const StaticString s_ATTR_CLIENT_VERSION("ATTR_CLIENT_VERSION");
  143. const StaticString s_ATTR_SERVER_INFO("ATTR_SERVER_INFO");
  144. const StaticString s_ATTR_CONNECTION_STATUS("ATTR_CONNECTION_STATUS");
  145. const StaticString s_ATTR_CASE("ATTR_CASE");
  146. const StaticString s_ATTR_CURSOR_NAME("ATTR_CURSOR_NAME");
  147. const StaticString s_ATTR_CURSOR("ATTR_CURSOR");
  148. const StaticString s_ATTR_ORACLE_NULLS("ATTR_ORACLE_NULLS");
  149. const StaticString s_ATTR_PERSISTENT("ATTR_PERSISTENT");
  150. const StaticString s_ATTR_STATEMENT_CLASS("ATTR_STATEMENT_CLASS");
  151. const StaticString s_ATTR_FETCH_TABLE_NAMES("ATTR_FETCH_TABLE_NAMES");
  152. const StaticString s_ATTR_FETCH_CATALOG_NAMES("ATTR_FETCH_CATALOG_NAMES");
  153. const StaticString s_ATTR_DRIVER_NAME("ATTR_DRIVER_NAME");
  154. const StaticString s_ATTR_STRINGIFY_FETCHES("ATTR_STRINGIFY_FETCHES");
  155. const StaticString s_ATTR_MAX_COLUMN_LEN("ATTR_MAX_COLUMN_LEN");
  156. const StaticString s_ATTR_EMULATE_PREPARES("ATTR_EMULATE_PREPARES");
  157. const StaticString s_ATTR_DEFAULT_FETCH_MODE("ATTR_DEFAULT_FETCH_MODE");
  158. const StaticString s_ERRMODE_SILENT("ERRMODE_SILENT");
  159. const StaticString s_ERRMODE_WARNING("ERRMODE_WARNING");
  160. const StaticString s_ERRMODE_EXCEPTION("ERRMODE_EXCEPTION");
  161. const StaticString s_CASE_NATURAL("CASE_NATURAL");
  162. const StaticString s_CASE_LOWER("CASE_LOWER");
  163. const StaticString s_CASE_UPPER("CASE_UPPER");
  164. const StaticString s_NULL_NATURAL("NULL_NATURAL");
  165. const StaticString s_NULL_EMPTY_STRING("NULL_EMPTY_STRING");
  166. const StaticString s_NULL_TO_STRING("NULL_TO_STRING");
  167. const StaticString s_FETCH_ORI_NEXT("FETCH_ORI_NEXT");
  168. const StaticString s_FETCH_ORI_PRIOR("FETCH_ORI_PRIOR");
  169. const StaticString s_FETCH_ORI_FIRST("FETCH_ORI_FIRST");
  170. const StaticString s_FETCH_ORI_LAST("FETCH_ORI_LAST");
  171. const StaticString s_FETCH_ORI_ABS("FETCH_ORI_ABS");
  172. const StaticString s_FETCH_ORI_REL("FETCH_ORI_REL");
  173. const StaticString s_CURSOR_FWDONLY("CURSOR_FWDONLY");
  174. const StaticString s_CURSOR_SCROLL("CURSOR_SCROLL");
  175. const StaticString s_MYSQL_ATTR_USE_BUFFERED_QUERY(
  176. "MYSQL_ATTR_USE_BUFFERED_QUERY");
  177. const StaticString s_MYSQL_ATTR_LOCAL_INFILE("MYSQL_ATTR_LOCAL_INFILE");
  178. const StaticString s_MYSQL_ATTR_MAX_BUFFER_SIZE("MYSQL_ATTR_MAX_BUFFER_SIZE");
  179. const StaticString s_MYSQL_ATTR_INIT_COMMAND("MYSQL_ATTR_INIT_COMMAND");
  180. const StaticString s_MYSQL_ATTR_READ_DEFAULT_FILE(
  181. "MYSQL_ATTR_READ_DEFAULT_FILE");
  182. const StaticString s_MYSQL_ATTR_READ_DEFAULT_GROUP(
  183. "MYSQL_ATTR_READ_DEFAULT_GROUP");
  184. const StaticString s_MYSQL_ATTR_COMPRESS("MYSQL_ATTR_COMPRESS");
  185. const StaticString s_MYSQL_ATTR_DIRECT_QUERY("MYSQL_ATTR_DIRECT_QUERY");
  186. const StaticString s_MYSQL_ATTR_FOUND_ROWS("MYSQL_ATTR_FOUND_ROWS");
  187. const StaticString s_MYSQL_ATTR_IGNORE_SPACE("MYSQL_ATTR_IGNORE_SPACE");
  188. const StaticString s_ERR_NONE("ERR_NONE");
  189. ///////////////////////////////////////////////////////////////////////////////
  190. // class PDO
  191. struct PDOData {
  192. public: sp_PDOResource m_dbh;
  193. };
  194. ///////////////////////////////////////////////////////////////////////////////
  195. // class PDOStatement
  196. struct PDOStatementData {
  197. public: PDOStatementData();
  198. public: ~PDOStatementData();
  199. public: sp_PDOStatement m_stmt;
  200. public: Variant m_row;
  201. public: int m_rowIndex;
  202. };
  203. ///////////////////////////////////////////////////////////////////////////////
  204. }
  205. #endif // incl_HPHP_EXT_PDO_H_