/* {{{ proto object PDO::__construct(string dsn, string username, string passwd [, array options])
*/
-static PHP_FUNCTION(dbh_constructor)
+static PHP_METHOD(PDO, dbh_constructor)
{
zval *object = getThis();
pdo_dbh_t *dbh = NULL;
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
if (ZEND_NUM_ARGS() > 1 && SUCCESS == zend_hash_index_find(Z_ARRVAL_P(options), PDO_ATTR_STATEMENT_CLASS, (void**)&opt)) {
if (zend_hash_index_find(Z_ARRVAL_PP(opt), 0, (void**)&item) == FAILURE
{
pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PDO_CONSTRUCT_CHECK;
+
if (dbh->in_txn) {
zend_throw_exception_ex(php_pdo_get_exception(TSRMLS_C), 0 TSRMLS_CC, "There is already an active transaction");
RETURN_FALSE;
{
pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PDO_CONSTRUCT_CHECK;
+
if (!dbh->in_txn) {
zend_throw_exception_ex(php_pdo_get_exception(TSRMLS_C), 0 TSRMLS_CC, "There is no active transaction");
RETURN_FALSE;
{
pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
+ PDO_CONSTRUCT_CHECK;
+
if (!dbh->in_txn) {
zend_throw_exception_ex(php_pdo_get_exception(TSRMLS_C), 0 TSRMLS_CC, "There is no active transaction");
RETURN_FALSE;
RETURN_FALSE;
}
+ PDO_CONSTRUCT_CHECK;
+
switch (attr) {
case PDO_ATTR_ERRMODE:
convert_to_long(value);
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
/* handle generic PDO-level atributes */
switch (attr) {
RETURN_FALSE;
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
ret = dbh->methods->doer(dbh, statement, statement_len TSRMLS_CC);
if(ret == -1) {
PDO_HANDLE_DBH_ERR();
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
if (!dbh->methods->last_id) {
pdo_raise_impl_error(dbh, NULL, "IM001", "driver does not support lastInsertId()" TSRMLS_CC);
RETURN_FALSE;
if (ZEND_NUM_ARGS()) {
RETURN_FALSE;
}
+ PDO_CONSTRUCT_CHECK;
RETURN_STRING(dbh->error_code, 1);
}
if (ZEND_NUM_ARGS()) {
RETURN_FALSE;
}
+ PDO_CONSTRUCT_CHECK;
array_init(return_value);
add_next_index_string(return_value, dbh->error_code, 1);
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
if (!pdo_stmt_instantiate(dbh, return_value, U_CLASS_ENTRY(pdo_dbstmt_ce), NULL TSRMLS_CC)) {
pdo_raise_impl_error(dbh, NULL, "HY000", "failed to instantiate user supplied statement class" TSRMLS_CC);
}
PDO_DBH_CLEAR_ERR();
+ PDO_CONSTRUCT_CHECK;
if (!dbh->methods->quoter) {
pdo_raise_impl_error(dbh, NULL, "IM001", "driver does not support quoting" TSRMLS_CC);
RETURN_FALSE;
/* }}} */
function_entry pdo_dbh_functions[] = {
- PHP_ME_MAPPING(__construct, dbh_constructor, NULL)
+ ZEND_MALIAS(PDO, __construct, dbh_constructor, NULL, ZEND_ACC_PUBLIC)
PHP_ME(PDO, prepare, NULL, ZEND_ACC_PUBLIC)
PHP_ME(PDO, beginTransaction,NULL, ZEND_ACC_PUBLIC)
PHP_ME(PDO, commit, NULL, ZEND_ACC_PUBLIC)
INIT_CLASS_ENTRY(ce, "PDO", pdo_dbh_functions);
pdo_dbh_ce = zend_register_internal_class(&ce TSRMLS_CC);
pdo_dbh_ce->create_object = pdo_dbh_new;
- pdo_dbh_ce->constructor->common.fn_flags |= ZEND_ACC_FINAL;
memcpy(&pdo_dbh_object_handlers, &std_object_handlers, sizeof(zend_object_handlers));
pdo_dbh_object_handlers.get_method = dbh_method_get;