diff options
Diffstat (limited to 'ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt')
| -rw-r--r-- | ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt b/ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt new file mode 100644 index 0000000000..b1cd78eee7 --- /dev/null +++ b/ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt @@ -0,0 +1,45 @@ +--TEST-- +__toString() exception during PDO Sqlite parameter binding +--SKIPIF-- +<?php if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; ?> +--FILE-- +<?php + +class throws { + function __toString() { + throw new Exception("Sorry"); + } +} + +$db = new PDO('sqlite::memory:'); +$db->exec('CREATE TABLE t(id int, v varchar(255))'); + +$stmt = $db->prepare('INSERT INTO t VALUES(:i, :v)'); +$param1 = 1234; +$stmt->bindValue('i', $param1); +$param2 = "foo"; +$stmt->bindParam('v', $param2); + +$param2 = new throws; + +try { + $stmt->execute(); +} catch (Exception $e) { + echo "Exception thrown ...\n"; +} + +try { + $stmt->execute(); +} catch (Exception $e) { + echo "Exception thrown ...\n"; +} + +$query = $db->query("SELECT * FROM t"); +while ($row = $query->fetch(PDO::FETCH_ASSOC)) { + print_r($row); +} + +?> +--EXPECT-- +Exception thrown ... +Exception thrown ... |
