REGISTER_LONG_CONSTANT("PDO_FETCH_GROUP",(long)PDO_FETCH_GROUP, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PDO_FETCH_UNIQUE",(long)PDO_FETCH_UNIQUE, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PDO_FETCH_CLASSTYPE",(long)PDO_FETCH_CLASSTYPE, CONST_CS|CONST_PERSISTENT);
+#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
REGISTER_LONG_CONSTANT("PDO_FETCH_SERIALIZE",(long)PDO_FETCH_SERIALIZE, CONST_CS|CONST_PERSISTENT);
+#endif
REGISTER_LONG_CONSTANT("PDO_ATTR_AUTOCOMMIT", (long)PDO_ATTR_AUTOCOMMIT, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PDO_ATTR_PREFETCH", (long)PDO_ATTR_PREFETCH, CONST_CS|CONST_PERSISTENT);
return 0;
}
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
-#else
+#endif
+#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
if (!ce->unserialize) {
zend_throw_exception_ex(pdo_exception_ce, 0 TSRMLS_CC, "Class %s cannot be unserialized", ce->name);
return 0;
mode = stmt->default_fetch_type & ~PDO_FETCH_FLAGS;
}
+#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 1
+ if ((flags & PDO_FETCH_SERIALIZE) == PDO_FETCH_SERIALIZE) {
+ zend_throw_exception(pdo_exception_ce, "Fetch flag PDO_FETCH_SERIALIZE only allowed in PHP version 5.1 and higher", 0 TSRMLS_CC);
+ return 0;
+ }
+#endif
+
switch(mode) {
case PDO_FETCH_FUNC:
if (!fetch_all) {