summaryrefslogtreecommitdiff
path: root/ext/pdo_sqlite/tests
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-06-05 14:38:01 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-06-05 14:53:50 +0200
commit7686b0b88906e2522300b9e631ddde2051de839f (patch)
tree31a3cfd1feaf6f7190bad8222a6f9da567acd723 /ext/pdo_sqlite/tests
parent03a9c2df7baea96a4777346c8799f0a6fdd7c882 (diff)
parenta31f46421d7bf6f55dd9ac5876b8e2eacf7e0708 (diff)
downloadphp-git-7686b0b88906e2522300b9e631ddde2051de839f.tar.gz
Merge branch 'PHP-7.4'
Diffstat (limited to 'ext/pdo_sqlite/tests')
-rw-r--r--ext/pdo_sqlite/tests/pdo_sqlite_tostring_exception.phpt45
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 ...