diff options
-rw-r--r-- | ext/pgsql/tests/bug72028.phpt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/pgsql/tests/bug72028.phpt b/ext/pgsql/tests/bug72028.phpt new file mode 100644 index 0000000000..217a03abc7 --- /dev/null +++ b/ext/pgsql/tests/bug72028.phpt @@ -0,0 +1,52 @@ +--TEST-- +Bug #72028 pg_query_params(): NULL converts to empty string +--SKIPIF-- +<?php include("skipif.inc"); ?> +--FILE-- +<?php +// create test table + +include('config.inc'); + +$conn = pg_connect($conn_str); + +$table = "bug72028_" . md5(uniqid(time())); + +pg_query("CREATE TABLE $table (value TEXT, details TEXT);"); + +$sql = "INSERT INTO $table (value, details) VALUES ($1, $2)"; + +$params = array(null, "insert before looping with a reference"); +$result = pg_query_params($conn, $sql, $params); + +$params2 = array(null, "insert after looping with a reference"); +foreach ($params2 as &$p) { + // doing nothing +} +unset($p); + +$result = pg_query_params($conn, $sql, $params2); + +$r = pg_query("SELECT * FROM $table"); +while (false !== ($i = pg_fetch_assoc($r))) { + var_dump($i); +} + +pg_query("DROP TABLE $table"); + +?> +==DONE== +--EXPECT-- +array(2) { + ["value"]=> + NULL + ["details"]=> + string(38) "insert before looping with a reference" +} +array(2) { + ["value"]=> + NULL + ["details"]=> + string(37) "insert after looping with a reference" +} +==DONE== |