120 if (!zend_hash_str_exists(&
module_registry,
"pdo",
sizeof(
"pdo") - 1)) {
131 if (!zend_hash_str_exists(&
module_registry,
"pdo",
sizeof(
"pdo") - 1)) {
142 if (!zend_hash_str_exists(&
module_registry,
"pdo",
sizeof(
"pdo") - 1)) {
166 int n_semicolumns = 0;
169 while (i < data_source_len) {
172 if (data_source[i] ==
'\0') {
176 if (data_source[i] !=
'=') {
186 while (i < data_source_len) {
187 if (data_source[i] ==
'\0') {
191 if (data_source[i] ==
';') {
192 if ((i + 1 >= data_source_len) || data_source[i+1] !=
';') {
209 nlen = valstart - optstart - 1;
210 for (
j = 0;
j < nparams;
j++) {
211 if (0 ==
strncmp(data_source + optstart, parsed[
j].optname, nlen) && parsed[
j].optname[nlen] ==
'\0') {
213 if (parsed[
j].freeme) {
217 if (n_semicolumns == 0) {
218 parsed[
j].
optval =
estrndup(data_source + valstart, semi - valstart - n_semicolumns);
220 int vlen = semi - valstart;
221 const char *orig_val = data_source + valstart;
222 char *new_val = (
char *)
emalloc(vlen - n_semicolumns + 1);
226 while (vlen && *orig_val) {
227 *new_val = *orig_val;
230 if (*orig_val ==
';') {
247 while (i < data_source_len && isspace(data_source[i])) {
267 "PDO persistent database", module_number);
pdo_driver_t * pdo_find_driver(const char *name, int namelen)
PDO_API int php_pdo_parse_data_source(const char *data_source, zend_ulong data_source_len, struct pdo_data_src_parser *parsed, int nparams)
PDO_API void php_pdo_unregister_driver(const pdo_driver_t *driver)
zend_class_entry * pdo_row_ce
zend_class_entry * pdo_dbstmt_ce
PDO_API zend_result php_pdo_register_driver(const pdo_driver_t *driver)
PDO_API zend_result php_pdo_register_driver_specific_ce(const pdo_driver_t *driver, zend_class_entry *ce)
HashTable pdo_driver_specific_ce_hash
HashTable pdo_driver_hash
PDO_API zend_class_entry * php_pdo_get_dbh_ce(void)
zend_class_entry * pdo_exception_ce
zend_class_entry * pdo_dbh_ce
zend_module_entry pdo_module_entry
PDO_API zend_class_entry * php_pdo_get_exception(void)
int php_pdo_list_entry(void)
void pdo_dbh_init(int module_number)
php_info_print_table_start()
php_info_print_table_row(2, "PDO Driver for Firebird", "enabled")
php_info_print_table_end()
void pdo_sqlstate_init_error_table(void)
void pdo_sqlstate_fini_error_table(void)
#define PHP_MSHUTDOWN_FUNCTION
#define PHP_MINIT_FUNCTION
#define PHP_MINFO_FUNCTION
PHPAPI zend_class_entry * spl_ce_RuntimeException
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *format,...)
ZEND_API zend_result add_next_index_stringl(zval *arg, const char *str, size_t length)
ZEND_API HashTable module_registry
#define ZEND_PARSE_PARAMETERS_NONE()
#define ZEND_GET_MODULE(name)
#define estrndup(s, length)
strncmp(string $string1, string $string2, int $length)
ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht)
ZEND_API zend_result ZEND_FASTCALL zend_hash_str_del(HashTable *ht, const char *str, size_t len)
#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent)
#define ZEND_HASH_MAP_FOREACH_PTR(ht, _ptr)
#define ZEND_HASH_FOREACH_END()
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number)
struct _zend_module_dep zend_module_dep
struct _zend_module_entry zend_module_entry
#define STANDARD_MODULE_PROPERTIES
#define ZEND_MOD_REQUIRED(name)
#define STANDARD_MODULE_HEADER_EX
struct _zend_class_entry zend_class_entry
struct _zend_array HashTable
ZEND_RESULT_CODE zend_result