1--TEST-- 2mysqli_stmt_execute() - OUT 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifconnectfailure.inc'); 7require_once('connect.inc'); 8if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { 9 die(sprintf('skip Cannot connect to MySQL, [%d] %s.', mysqli_connect_errno(), mysqli_connect_error())); 10} 11if (mysqli_get_server_version($link) < 50503) { 12 die(sprintf('skip Needs MySQL 5.5.3+, found version %d.', mysqli_get_server_version($link))); 13} 14/* 15if ($IS_MYSQLND) { 16 die(sprintf("skip WHY ?!")); 17} 18*/ 19?> 20--FILE-- 21<?php 22 require_once('connect.inc'); 23 24 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { 25 printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", 26 $host, $user, $db, $port, $socket); 27 } 28 29 if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) 30 printf("[003] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); 31 32 if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) { 33 if (!$stmt = mysqli_prepare($link, 'CALL p(?, ?)')) 34 printf("[005] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 35 36 $ver_in = 'myversion'; 37 $ver_out = ''; 38 if (!mysqli_stmt_bind_param($stmt, 'ss', $ver_in, $ver_out)) 39 printf("[006] Cannot bind parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 40 41 if (!mysqli_stmt_execute($stmt)) 42 printf("[007] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 43 44 printf("[008] More results: %s\n", (mysqli_more_results($link) ? "yes" : "no")); 45 printf("[009] Next results: %s\n", (mysqli_next_result($link) ? "yes" : "no")); 46 47 if (!mysqli_stmt_bind_result($stmt, $ver_out) || !mysqli_stmt_fetch($stmt)) 48 printf("[010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 49 50 if ("myversion" !== $ver_out) 51 printf("[011] Results seem wrong got '%s'\n", $ver_out); 52 53 if (!mysqli_stmt_close($stmt)) 54 printf("[012] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 55 56 if (!$res = $link->query("SELECT 1")) 57 printf("[013] [%d] %s\n", $link->errno, $link->error); 58 59 } else { 60 printf("[004] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); 61 } 62 63 mysqli_close($link); 64 print "done!"; 65?> 66--CLEAN-- 67<?php 68require_once("connect.inc"); 69if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 70 printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 71 72@mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'); 73 74mysqli_close($link); 75?> 76--XFAIL-- 77Unsupported and undefined, under development 78--EXPECTF-- 79[008] More results: %s 80[009] Next results: %s 81done! 82