diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt')
-rw-r--r-- | ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt b/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt new file mode 100644 index 0000000..29e3947 --- /dev/null +++ b/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt @@ -0,0 +1,198 @@ +--TEST-- +mysqli_stmt_execute() - Stored Procedures +--SKIPIF-- +<?php +require_once('skipif.inc'); +require_once('skipifconnectfailure.inc'); +require_once('connect.inc'); +if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { + die(sprintf('skip Cannot connect to MySQL, [%d] %s.', mysqli_connect_errno(), mysqli_connect_error())); +} +if (mysqli_get_server_version($link) <= 50000) { + die(sprintf('skip Needs MySQL 5.0+, found version %d.', mysqli_get_server_version($link))); +} +?> +--FILE-- +<?php + require_once('connect.inc'); + require_once('table.inc'); + + if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) + printf("[009] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + + if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) { + /* no result set, one output parameter */ + if (!$stmt = mysqli_prepare($link, 'CALL p(@version)')) + printf("[011] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[012] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + /* yes, I really want to call it twice! */ + if (!mysqli_stmt_execute($stmt)) + printf("[013] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!mysqli_stmt_close($stmt)) + printf("[014] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version')) + printf("[015] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[016] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + $version = 'unknown'; + if (!mysqli_stmt_bind_result($stmt, $version) || + !mysqli_stmt_fetch($stmt)) + printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (($version == "unknown") || ($version == "")) + printf("[018] Results seem wrong, got %s, [%d] %s\n", + $version, + mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + mysqli_stmt_free_result($stmt); + mysqli_stmt_close($stmt); + + } else { + printf("[010] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + } + + + if (function_exists('mysqli_stmt_get_result')) { + + if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) + printf("[019] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + + if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) { + // no result set, one output parameter + if (!$stmt = mysqli_prepare($link, 'CALL p(@version)')) + printf("[020] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[021] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!mysqli_stmt_close($stmt)) + printf("[022] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version')) + printf("[023] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[024] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!$res = mysqli_stmt_get_result($stmt)) + printf("[025] Cannot get result set, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if ((!($row = mysqli_fetch_assoc($res))) || ($row['_version'] == "")) + printf("[026] Results seem wrong, got %s, [%d] %s\n", + $row['_version'], + mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + mysqli_free_result($res); + mysqli_stmt_close($stmt); + + } else { + printf("[027] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + } + + } + + if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) + printf("[028] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + + 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;')) { + // no result set, one input parameter, output parameter + // yes, I really do not want to bind input values... + if (!$stmt = mysqli_prepare($link, "CALL p('myversion', @version)")) + printf("[029] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[030] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!mysqli_stmt_close($stmt)) + printf("[031] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version')) + printf("[032] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[033] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + $version = 'unknown'; + if (!mysqli_stmt_bind_result($stmt, $version) || + !mysqli_stmt_fetch($stmt)) + printf("[034] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if ($version != "myversion") + printf("[035] Results seem wrong, got %s, [%d] %s\n", + $version, + mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + mysqli_stmt_free_result($stmt); + mysqli_stmt_close($stmt); + + } else { + printf("[036] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + } + + if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) + printf("[037] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + + 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;')) { + // no result set, one input parameter, output parameter + // yes, I really do not want to bind input values... + if (!$stmt = mysqli_prepare($link, 'CALL p(?, @version)')) + printf("[038] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + $version = 'myversion'; + if (!mysqli_stmt_bind_param($stmt, 's', $version)) + printf("[039] Cannot bind input parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!mysqli_stmt_execute($stmt)) + printf("[040] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!mysqli_stmt_close($stmt)) + printf("[041] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version')) + printf("[042] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!mysqli_stmt_execute($stmt)) + printf("[043] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + $version = 'unknown'; + if (!mysqli_stmt_bind_result($stmt, $version) || + !mysqli_stmt_fetch($stmt)) + printf("[044] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + if ($version !== "myversion") + printf("[045] Results seem wrong, got %s, [%d] %s\n", + $version, + mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); + + mysqli_stmt_free_result($stmt); + mysqli_stmt_close($stmt); + + } else { + printf("[046] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); + } + + mysqli_close($link); + print "done!"; +?> +--CLEAN-- +<?php +require_once("connect.inc"); +if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) + printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); + +if (!mysqli_query($link, "DROP TABLE IF EXISTS test_bind_fetch")) + printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + +@mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'); + +mysqli_close($link); +?> +--EXPECTF-- +done!
\ No newline at end of file |