summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/bug54221.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqli/tests/bug54221.phpt')
-rw-r--r--ext/mysqli/tests/bug54221.phpt47
1 files changed, 47 insertions, 0 deletions
diff --git a/ext/mysqli/tests/bug54221.phpt b/ext/mysqli/tests/bug54221.phpt
new file mode 100644
index 0000000..78c9a2c
--- /dev/null
+++ b/ext/mysqli/tests/bug54221.phpt
@@ -0,0 +1,47 @@
+--TEST--
+Bug #54221 mysqli::get_warnings segfault when used in multi queries
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--INI--
+mysqli.max_links = 1
+mysqli.allow_persistent = Off
+mysqli.max_persistent = 0
+mysqli.reconnect = Off
+--FILE--
+<?php
+ include ("connect.inc");
+
+ $link = mysqli_init();
+ if (!my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)) {
+ printf("[002] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
+ }
+
+ $create = "CREATE TEMPORARY TABLE IF NOT EXISTS t54221(a int)";
+
+ $query = "$create;$create;$create;";
+ if ($link->multi_query($query)) {
+ do {
+ $sth = $link->store_result();
+
+ if ($link->warning_count) {
+ $warnings = $link->get_warnings();
+ if ($warnings) {
+ do {
+ echo "Warning: ".$warnings->errno.": ".$warnings->message."\n";
+ } while ($warnings->next());
+ }
+ }
+ } while ($link->more_results() && $link->next_result());
+ }
+
+ mysqli_close($link);
+
+ print "done!";
+?>
+--EXPECTF--
+Warning: :
+Warning: 1050: Table 't54221' already exists
+done!