case PDO_ATTR_DRIVER_NAME:
RETURN_STRINGL(dbh->driver->driver_name, dbh->driver->driver_name_len, 1);
+
+ case PDO_ATTR_STATEMENT_CLASS:
+ array_init(return_value);
+ add_next_index_string(return_value, dbh->def_stmt_ce->name, 1);
+ if (dbh->def_stmt_ctor_args) {
+ dbh->def_stmt_ctor_args->refcount++;
+ add_next_index_zval(return_value, dbh->def_stmt_ctor_args);
+ }
+ return;
}
if (!dbh->methods->get_attribute) {
echo "===QUERY===\n";
+var_dump($db->getAttribute(PDO::ATTR_STATEMENT_CLASS));
$db->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('PDOStatementx', array($db)));
+var_dump($db->getAttribute(PDO::ATTR_STATEMENT_CLASS));
$stmt = $db->query('SELECT * FROM test');
var_dump(get_class($stmt));
var_dump(get_class($stmt->dbh));
echo "===DONE===\n";
exit(0);
?>
---EXPECT--
+--EXPECTF--
string(11) "PDODatabase"
string(12) "PDOStatement"
===QUERY===
+array(1) {
+ [0]=>
+ string(12) "PDOStatement"
+}
+array(2) {
+ [0]=>
+ string(13) "PDOStatementX"
+ [1]=>
+ array(1) {
+ [0]=>
+ object(PDODatabase)#%d (0) {
+ }
+ }
+}
PDODatabase::query()
PDOStatementX::__construct()
string(13) "PDOStatementX"