mirror of
https://github.com/php/php-src.git
synced 2025-01-06 02:43:34 +08:00
e3d9e18e7b
I know zend_call_function will initilize retval_ptr_ptr, but still set it to NULL explict is more readable
34 lines
747 B
PHP
34 lines
747 B
PHP
--TEST--
|
|
Bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception)
|
|
--SKIPIF--
|
|
<?php
|
|
if (!extension_loaded('pdo_sqlite')) print 'skip not loaded';
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
class DBStatement extends PDOStatement {
|
|
public $dbh;
|
|
protected function __construct($dbh) {
|
|
$this->dbh = $dbh;
|
|
throw new Exception("Blah");
|
|
}
|
|
}
|
|
|
|
$pdo = new PDO('sqlite::memory:', null, null);
|
|
$pdo->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('DBStatement',
|
|
array($pdo)));
|
|
$pdo->exec("CREATE TABLE IF NOT EXISTS messages (
|
|
id INTEGER PRIMARY KEY,
|
|
title TEXT,
|
|
message TEXT,
|
|
time INTEGER)");
|
|
|
|
try {
|
|
$pdoStatement = $pdo->query("select * from messages");
|
|
} catch (Exception $e) {
|
|
var_dump($e->getMessage());
|
|
}
|
|
?>
|
|
--EXPECTF--
|
|
string(4) "Blah"
|