#ifndef PHP_SQLSRV_H #define PHP_SQLSRV_H //--------------------------------------------------------------------------------------------------------------------------------- // File: php_sqlsrv.h // // Contents: Declarations for the extension // // Comments: Also contains "internal" declarations shared across source files. // // Microsoft Drivers 5.10 for PHP for SQL Server // Copyright(c) Microsoft Corporation // All rights reserved. // MIT License // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the ""Software""), // to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, // and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions : // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. //--------------------------------------------------------------------------------------------------------------------------------- #include "php.h" //********************************************************************************************************************************* // Global variables //********************************************************************************************************************************* // request level variables ZEND_BEGIN_MODULE_GLOBALS(sqlsrv) // global objects for errors and warnings. These are returned by sqlsrv_errors. zval errors; zval warnings; // flags for error handling and logging (set via sqlsrv_configure or php.ini) zend_long log_severity; zend_long log_subsystems; zend_long current_subsystem; zend_bool warnings_return_as_errors; zend_long buffered_query_limit; #ifndef _WIN32 zend_long set_locale_info; #endif ZEND_END_MODULE_GLOBALS(sqlsrv) ZEND_EXTERN_MODULE_GLOBALS(sqlsrv); // macro used to access the global variables. Use it to make global variable access agnostic to threads #define SQLSRV_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(sqlsrv, v) #if defined(ZTS) ZEND_TSRMLS_CACHE_EXTERN(); #endif //********************************************************************************************************************************* // Initialization Functions //********************************************************************************************************************************* // variables set during initialization extern zend_module_entry g_sqlsrv_module_entry; // describes the extension to PHP #define phpext_sqlsrv_ptr &g_sqlsrv_module_entry // module initialization PHP_MINIT_FUNCTION(sqlsrv); // module shutdown function PHP_MSHUTDOWN_FUNCTION(sqlsrv); // request initialization function PHP_RINIT_FUNCTION(sqlsrv); // request shutdown function PHP_RSHUTDOWN_FUNCTION(sqlsrv); // module info function (info returned by phpinfo()) PHP_MINFO_FUNCTION(sqlsrv); //********************************************************************************************************************************* // Functions //********************************************************************************************************************************* PHP_FUNCTION(sqlsrv_connect); PHP_FUNCTION(sqlsrv_begin_transaction); PHP_FUNCTION(sqlsrv_client_info); PHP_FUNCTION(sqlsrv_close); PHP_FUNCTION(sqlsrv_commit); PHP_FUNCTION(sqlsrv_query); PHP_FUNCTION(sqlsrv_prepare); PHP_FUNCTION(sqlsrv_rollback); PHP_FUNCTION(sqlsrv_server_info); PHP_FUNCTION(sqlsrv_cancel); PHP_FUNCTION(sqlsrv_execute); PHP_FUNCTION(sqlsrv_fetch); PHP_FUNCTION(sqlsrv_fetch_array); PHP_FUNCTION(sqlsrv_fetch_object); PHP_FUNCTION(sqlsrv_field_metadata); PHP_FUNCTION(sqlsrv_free_stmt); PHP_FUNCTION(sqlsrv_get_field); PHP_FUNCTION(sqlsrv_has_rows); PHP_FUNCTION(sqlsrv_next_result); PHP_FUNCTION(sqlsrv_num_fields); PHP_FUNCTION(sqlsrv_num_rows); PHP_FUNCTION(sqlsrv_rows_affected); PHP_FUNCTION(sqlsrv_send_stream_data); // type functions for SQL types. // to expose SQL Server paramterized types, we use functions that return encoded integers that contain the size/precision etc. // for example, SQLSRV_SQLTYPE_VARCHAR(4000) matches the usage of SQLSRV_SQLTYPE_INT with the size added. PHP_FUNCTION(SQLSRV_SQLTYPE_BINARY); PHP_FUNCTION(SQLSRV_SQLTYPE_CHAR); PHP_FUNCTION(SQLSRV_SQLTYPE_DECIMAL); PHP_FUNCTION(SQLSRV_SQLTYPE_NCHAR); PHP_FUNCTION(SQLSRV_SQLTYPE_NUMERIC); PHP_FUNCTION(SQLSRV_SQLTYPE_NVARCHAR); PHP_FUNCTION(SQLSRV_SQLTYPE_VARBINARY); PHP_FUNCTION(SQLSRV_SQLTYPE_VARCHAR); // PHP type functions // strings and streams may have an encoding parameterized, so we use the functions // the valid encodings are SQLSRV_ENC_BINARY and SQLSRV_ENC_CHAR. PHP_FUNCTION(SQLSRV_PHPTYPE_STREAM); PHP_FUNCTION(SQLSRV_PHPTYPE_STRING); // These functions set and retrieve configuration settings. Configuration settings defined are: // WarningsReturnAsErrors - treat all ODBC warnings as errors and return false from sqlsrv APIs. // LogSeverity - combination of severity of messages to log (see Logging) // LogSubsystems - subsystems within sqlsrv to log messages (see Logging) PHP_FUNCTION(sqlsrv_configure); PHP_FUNCTION(sqlsrv_get_config); // *** extension error functions *** PHP_FUNCTION(sqlsrv_errors); #endif /* PHP_SQLSRV_H */