Server IP : 104.21.38.3 / Your IP : 162.158.88.21 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/php/74/src/ext/pdo_odbc/ |
Upload File : |
/* +----------------------------------------------------------------------+ | PHP Version 7 | +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.0 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_0.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [email protected] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Wez Furlong <[email protected]> | +----------------------------------------------------------------------+ */ #ifdef PHP_WIN32 # define PDO_ODBC_TYPE "Win32" #endif #ifndef PDO_ODBC_TYPE # warning Please fix configure to give your ODBC libraries a name # define PDO_ODBC_TYPE "Unknown" #endif /* {{{ Roll a dice, pick a header at random... */ #if HAVE_SQLCLI1_H # include <sqlcli1.h> # if defined(DB268K) && HAVE_LIBRARYMANAGER_H # include <LibraryManager.h> # endif #endif #if HAVE_ODBC_H # include <odbc.h> #endif #if HAVE_IODBC_H # include <iodbc.h> #endif #if HAVE_SQLUNIX_H && !defined(PHP_WIN32) # include <sqlunix.h> #endif #if HAVE_SQLTYPES_H # include <sqltypes.h> #endif #if HAVE_SQLUCODE_H # include <sqlucode.h> #endif #if HAVE_SQL_H # include <sql.h> #endif #if HAVE_ISQL_H # include <isql.h> #endif #if HAVE_SQLEXT_H # include <sqlext.h> #endif #if HAVE_ISQLEXT_H # include <isqlext.h> #endif #if HAVE_UDBCEXT_H # include <udbcext.h> #endif #if HAVE_CLI0CORE_H # include <cli0core.h> #endif #if HAVE_CLI0EXT1_H # include <cli0ext.h> #endif #if HAVE_CLI0CLI_H # include <cli0cli.h> #endif #if HAVE_CLI0DEFS_H # include <cli0defs.h> #endif #if HAVE_CLI0ENV_H # include <cli0env.h> #endif #if HAVE_ODBCSDK_H # include <odbcsdk.h> #endif /* }}} */ /* {{{ Figure out the type for handles */ #if !defined(HENV) && !defined(SQLHENV) && defined(SQLHANDLE) # define PDO_ODBC_HENV SQLHANDLE # define PDO_ODBC_HDBC SQLHANDLE # define PDO_ODBC_HSTMT SQLHANDLE #elif !defined(HENV) && (defined(SQLHENV) || defined(DB2CLI_VER)) # define PDO_ODBC_HENV SQLHENV # define PDO_ODBC_HDBC SQLHDBC # define PDO_ODBC_HSTMT SQLHSTMT #else # define PDO_ODBC_HENV HENV # define PDO_ODBC_HDBC HDBC # define PDO_ODBC_HSTMT HSTMT #endif /* }}} */ typedef struct { char last_state[6]; char last_err_msg[SQL_MAX_MESSAGE_LENGTH]; SDWORD last_error; const char *file, *what; int line; } pdo_odbc_errinfo; typedef struct { PDO_ODBC_HENV env; PDO_ODBC_HDBC dbc; pdo_odbc_errinfo einfo; unsigned assume_utf8:1; unsigned _spare:31; } pdo_odbc_db_handle; typedef struct { char *data; zend_ulong datalen; SQLLEN fetched_len; SWORD coltype; char colname[128]; unsigned is_long; unsigned is_unicode:1; unsigned _spare:31; } pdo_odbc_column; typedef struct { PDO_ODBC_HSTMT stmt; pdo_odbc_column *cols; pdo_odbc_db_handle *H; pdo_odbc_errinfo einfo; char *convbuf; zend_ulong convbufsize; unsigned going_long:1; unsigned assume_utf8:1; signed col_count:16; unsigned _spare:14; } pdo_odbc_stmt; typedef struct { SQLLEN len; SQLSMALLINT paramtype; char *outbuf; unsigned is_unicode:1; unsigned _spare:31; } pdo_odbc_param; extern const pdo_driver_t pdo_odbc_driver; extern const struct pdo_stmt_methods odbc_stmt_methods; void pdo_odbc_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, PDO_ODBC_HSTMT statement, char *what, const char *file, int line); #define pdo_odbc_drv_error(what) pdo_odbc_error(dbh, NULL, SQL_NULL_HSTMT, what, __FILE__, __LINE__) #define pdo_odbc_stmt_error(what) pdo_odbc_error(stmt->dbh, stmt, SQL_NULL_HSTMT, what, __FILE__, __LINE__) #define pdo_odbc_doer_error(what) pdo_odbc_error(dbh, NULL, stmt, what, __FILE__, __LINE__) void pdo_odbc_init_error_table(void); void pdo_odbc_fini_error_table(void); #ifdef SQL_ATTR_CONNECTION_POOLING extern zend_ulong pdo_odbc_pool_on; extern zend_ulong pdo_odbc_pool_mode; #endif enum { PDO_ODBC_ATTR_USE_CURSOR_LIBRARY = PDO_ATTR_DRIVER_SPECIFIC, PDO_ODBC_ATTR_ASSUME_UTF8 /* assume that input strings are UTF-8 when feeding data to unicode columns */ };