1--TEST-- 2Error in multi query 3--EXTENSIONS-- 4mysqli 5--SKIPIF-- 6<?php 7require_once('skipifconnectfailure.inc'); 8?> 9--FILE-- 10<?php 11 12require_once __DIR__ . '/connect.inc'; 13 14mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 15 16$mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket); 17 18$mysqli->multi_query("SELECT 1; SELECT 2; Syntax Error"); 19 20try { 21 do { 22 if ($res = $mysqli->store_result()) { 23 var_dump($res->fetch_all(MYSQLI_ASSOC)); 24 $res->free(); 25 } 26 } while ($mysqli->more_results() && $mysqli->next_result()); 27} catch (mysqli_sql_exception $e) { 28 echo $e->getMessage(), "\n"; 29} 30 31$mysqli->query("DROP PROCEDURE IF EXISTS p"); 32$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT 1; SELECT foobar FROM table_that_does_not_exist; END;'); 33 34$stmt = $mysqli->prepare("CALL p()"); 35$stmt->execute(); 36 37try { 38 do { 39 $stmt->bind_result($num); 40 while ($stmt->fetch()) { 41 echo "num = $num\n"; 42 } 43 } while ($stmt->more_results() && $stmt->next_result()); 44} catch (mysqli_sql_exception $e) { 45 echo $e->getMessage(), "\n"; 46} 47 48$mysqli->query("DROP PROCEDURE IF EXISTS p"); 49 50?> 51--EXPECTF-- 52array(1) { 53 [0]=> 54 array(1) { 55 [1]=> 56 string(1) "1" 57 } 58} 59array(1) { 60 [0]=> 61 array(1) { 62 [2]=> 63 string(1) "2" 64 } 65} 66You have an error in your SQL syntax; %s 67num = 1 68Table '%s.table_that_does_not_exist' doesn't exist 69