📄 mysqli_prepare.phpt
字号:
--TEST--mysqli_prepare()--SKIPIF--<?php require_once('skipif.inc'); ?><?php require_once('skipifemb.inc'); ?>--FILE--<?php include "connect.inc"; $tmp = NULL; $link = NULL; if (!is_null($tmp = @mysqli_prepare())) printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); if (!is_null($tmp = @mysqli_prepare($link))) printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); require('table.inc'); if (false !== ($tmp = @mysqli_prepare($link, false))) printf("[003] Expecting boolean/false, got %s\n", gettype($tmp)); if (!$res = mysqli_query($link, "SELECT id, label FROM test", MYSQLI_USE_RESULT)) printf("[004] [%d] %s, next test will fail\n", mysqli_errno($link), mysqli_error($link)); if (false !== ($tmp = mysqli_prepare($link, 'SELECT id FROM test WHERE id > ?'))) printf("[005] Expecting boolean/false, got %s, [%d] %s\n", gettype($tmp), mysqli_errno($link), mysqli_error($link)); mysqli_free_result($res); if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id FROM test'))) || !mysqli_stmt_execute($stmt)) printf("[006][%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!mysqli_query($link, "DROP TABLE IF EXISTS test2")) printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!is_object(($stmt = mysqli_prepare($link, 'CREATE TABLE test2(id INT) ENGINE =' . $engine))) || !mysqli_stmt_execute($stmt)) printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'INSERT INTO test2(id) VALUES(?)')))) printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 1; if (!mysqli_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'REPLACE INTO test2(id) VALUES (?)')))) printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 2; if (!mysqli_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) printf("[012] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'UPDATE test2 SET id = ? WHERE id = ?')))) printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = 3; $where = 2; if (!mysqli_bind_param($stmt, 'ii', $id, $where) || !mysqli_stmt_execute($stmt)) printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'DELETE FROM test2 WHERE id = ?')))) printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $where = 3; if (!mysqli_bind_param($stmt, 'i', $where) || !mysqli_stmt_execute($stmt)) printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'SET @testvar = ?')))) printf("[017] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $testvar = 'testvar'; if (!mysqli_bind_param($stmt, 's', $testvar) || !mysqli_stmt_execute($stmt)) printf("[018] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'DO GET_LOCK("testlock", 1)')))) printf("[019] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); mysqli_stmt_close($stmt); if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id, @testvar FROM test2')))) printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $id = $testvar = null; if (!mysqli_stmt_execute($stmt) || !mysqli_stmt_bind_result($stmt, $id, $testvar)) printf("[021] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); while (mysqli_stmt_fetch($stmt)) { if (('testvar' !== $testvar) || (1 !== $id)) printf("[022] Expecting 'testvar'/1, got %s/%s. [%d] %s\n", $testvar, $id, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); } mysqli_stmt_close($stmt); if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test', 'foo'))) printf("[023] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); mysqli_close($link); if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test'))) printf("[024] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); print "done!";?>--EXPECTF--done!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -