pdo_sqlite.c 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. +----------------------------------------------------------------------+
  3. | Copyright (c) The PHP Group |
  4. +----------------------------------------------------------------------+
  5. | This source file is subject to version 3.01 of the PHP license, |
  6. | that is bundled with this package in the file LICENSE, and is |
  7. | available through the world-wide-web at the following url: |
  8. | https://www.php.net/license/3_01.txt |
  9. | If you did not receive a copy of the PHP license and are unable to |
  10. | obtain it through the world-wide-web, please send a note to |
  11. | license@php.net so we can mail you a copy immediately. |
  12. +----------------------------------------------------------------------+
  13. | Author: Wez Furlong <wez@php.net> |
  14. +----------------------------------------------------------------------+
  15. */
  16. #ifdef HAVE_CONFIG_H
  17. #include "config.h"
  18. #endif
  19. #include "php.h"
  20. #include "php_ini.h"
  21. #include "ext/standard/info.h"
  22. #include "pdo/php_pdo.h"
  23. #include "pdo/php_pdo_driver.h"
  24. #include "php_pdo_sqlite.h"
  25. #include "php_pdo_sqlite_int.h"
  26. #include "zend_exceptions.h"
  27. /* {{{ pdo_sqlite_deps */
  28. static const zend_module_dep pdo_sqlite_deps[] = {
  29. ZEND_MOD_REQUIRED("pdo")
  30. ZEND_MOD_END
  31. };
  32. /* }}} */
  33. /* {{{ pdo_sqlite_module_entry */
  34. zend_module_entry pdo_sqlite_module_entry = {
  35. STANDARD_MODULE_HEADER_EX, NULL,
  36. pdo_sqlite_deps,
  37. "pdo_sqlite",
  38. NULL,
  39. PHP_MINIT(pdo_sqlite),
  40. PHP_MSHUTDOWN(pdo_sqlite),
  41. NULL,
  42. NULL,
  43. PHP_MINFO(pdo_sqlite),
  44. PHP_PDO_SQLITE_VERSION,
  45. STANDARD_MODULE_PROPERTIES
  46. };
  47. /* }}} */
  48. #if defined(COMPILE_DL_PDO_SQLITE) || defined(COMPILE_DL_PDO_SQLITE_EXTERNAL)
  49. ZEND_GET_MODULE(pdo_sqlite)
  50. #endif
  51. /* {{{ PHP_MINIT_FUNCTION */
  52. PHP_MINIT_FUNCTION(pdo_sqlite)
  53. {
  54. #ifdef SQLITE_DETERMINISTIC
  55. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_DETERMINISTIC", (zend_long)SQLITE_DETERMINISTIC);
  56. #endif
  57. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_ATTR_OPEN_FLAGS", (zend_long)PDO_SQLITE_ATTR_OPEN_FLAGS);
  58. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_OPEN_READONLY", (zend_long)SQLITE_OPEN_READONLY);
  59. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_OPEN_READWRITE", (zend_long)SQLITE_OPEN_READWRITE);
  60. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_OPEN_CREATE", (zend_long)SQLITE_OPEN_CREATE);
  61. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_ATTR_READONLY_STATEMENT", (zend_long)PDO_SQLITE_ATTR_READONLY_STATEMENT);
  62. REGISTER_PDO_CLASS_CONST_LONG("SQLITE_ATTR_EXTENDED_RESULT_CODES", (zend_long)PDO_SQLITE_ATTR_EXTENDED_RESULT_CODES);
  63. return php_pdo_register_driver(&pdo_sqlite_driver);
  64. }
  65. /* }}} */
  66. /* {{{ PHP_MSHUTDOWN_FUNCTION */
  67. PHP_MSHUTDOWN_FUNCTION(pdo_sqlite)
  68. {
  69. php_pdo_unregister_driver(&pdo_sqlite_driver);
  70. return SUCCESS;
  71. }
  72. /* }}} */
  73. /* {{{ PHP_MINFO_FUNCTION */
  74. PHP_MINFO_FUNCTION(pdo_sqlite)
  75. {
  76. php_info_print_table_start();
  77. php_info_print_table_header(2, "PDO Driver for SQLite 3.x", "enabled");
  78. php_info_print_table_row(2, "SQLite Library", sqlite3_libversion());
  79. php_info_print_table_end();
  80. }
  81. /* }}} */