diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-10 11:24:08 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-10 11:24:19 +0100 |
commit | d63aedd173fbb8b3399cff4b991f8a343dd0f331 (patch) | |
tree | 7e574c48a5f817c751b579dbc482df59d95b3c57 /ext/pdo_mysql | |
parent | 9b678bc4d5f56810e468bae7b6fdd9bd825b58ab (diff) | |
parent | e450621f5e0a9490c287c8c71650f8b4d5ebbc2b (diff) | |
download | php-git-d63aedd173fbb8b3399cff4b991f8a343dd0f331.tar.gz |
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
Fixed bug #76815
Diffstat (limited to 'ext/pdo_mysql')
-rw-r--r-- | ext/pdo_mysql/tests/bug76815.phpt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ext/pdo_mysql/tests/bug76815.phpt b/ext/pdo_mysql/tests/bug76815.phpt new file mode 100644 index 0000000000..b5c8577b07 --- /dev/null +++ b/ext/pdo_mysql/tests/bug76815.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #76815: PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL +--SKIPIF-- +<?php +require_once(__DIR__ . DIRECTORY_SEPARATOR . 'skipif.inc'); +require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc'); +MySQLPDOTest::skip(); +?> +--FILE-- +<?php +require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc'); + +$pdo = MySQLPDOTest::factory(); +$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + +$pdo->query('DROP FUNCTION IF EXISTS tst'); +$pdo->query('DROP PROCEDURE IF EXISTS tst2'); +$pdo->query('CREATE FUNCTION tst() RETURNS VARCHAR(5) DETERMINISTIC BEGIN RETURN \'x12345\'; END'); +$pdo->query('CREATE PROCEDURE tst2() BEGIN SELECT tst(); END'); + +$st = $pdo->prepare('CALL tst2()'); +try { + $st->execute(); +} catch (PDOException $ex) { + echo $ex->getMessage(), "\n"; +} +unset($st); +echo "Ok.\n"; + +?> +--EXPECT-- +SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'tst()' at row 1 +Ok. |