/hphp/test/zend/good/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.php
https://github.com/tstarling/hiphop-php · PHP · 180 lines · 124 code · 49 blank · 7 comment · 51 complexity · fa27c13d7daa342c1554551ac31d2442 MD5 · raw file
- <?php
- require_once('connect.inc');
- $test_table_name = 'test_mysqli_stmt_execute_stored_proc_table_1'; 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!";
- ?>
- <?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);
- ?>