1--TEST-- 2mysqli_prepare() 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifemb.inc'); 7require_once('skipifconnectfailure.inc'); 8?> 9--FILE-- 10<?php 11 require_once("connect.inc"); 12 13 $tmp = NULL; 14 $link = NULL; 15 16 if (!is_null($tmp = @mysqli_prepare())) 17 printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 18 19 if (!is_null($tmp = @mysqli_prepare($link))) 20 printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 21 22 require('table.inc'); 23 24 if (false !== ($tmp = @mysqli_prepare($link, false))) 25 printf("[003] Expecting boolean/false, got %s\n", gettype($tmp)); 26 27 if (!$res = mysqli_query($link, "SELECT id, label FROM test", MYSQLI_USE_RESULT)) 28 printf("[004] [%d] %s, next test will fail\n", mysqli_errno($link), mysqli_error($link)); 29 30 if (false !== ($tmp = mysqli_prepare($link, 'SELECT id FROM test WHERE id > ?'))) 31 printf("[005] Expecting boolean/false, got %s, [%d] %s\n", gettype($tmp), mysqli_errno($link), mysqli_error($link)); 32 33 mysqli_free_result($res); 34 35 if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id FROM test'))) || !mysqli_stmt_execute($stmt)) 36 printf("[006][%d] %s\n", mysqli_errno($link), mysqli_error($link)); 37 mysqli_stmt_close($stmt); 38 39 40 if (!mysqli_query($link, "DROP TABLE IF EXISTS test2")) 41 printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 42 43 if (!is_object(($stmt = mysqli_prepare($link, 'CREATE TABLE test2(id INT) ENGINE =' . $engine))) || !mysqli_stmt_execute($stmt)) 44 printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 45 mysqli_stmt_close($stmt); 46 47 48 if (!is_object(($stmt = mysqli_prepare($link, 'INSERT INTO test2(id) VALUES(?)')))) 49 printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 50 51 $id = 1; 52 if (!mysqli_stmt_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) 53 printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 54 mysqli_stmt_close($stmt); 55 56 if (!is_object(($stmt = mysqli_prepare($link, 'REPLACE INTO test2(id) VALUES (?)')))) 57 printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 58 59 $id = 2; 60 if (!mysqli_stmt_bind_param($stmt, 'i', $id) || !mysqli_stmt_execute($stmt)) 61 printf("[012] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 62 mysqli_stmt_close($stmt); 63 64 if (!is_object(($stmt = mysqli_prepare($link, 'UPDATE test2 SET id = ? WHERE id = ?')))) 65 printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 66 67 $id = 3; 68 $where = 2; 69 if (!mysqli_stmt_bind_param($stmt, 'ii', $id, $where) || !mysqli_stmt_execute($stmt)) 70 printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 71 mysqli_stmt_close($stmt); 72 73 if (!is_object(($stmt = mysqli_prepare($link, 'DELETE FROM test2 WHERE id = ?')))) 74 printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 75 76 $where = 3; 77 if (!mysqli_stmt_bind_param($stmt, 'i', $where) || !mysqli_stmt_execute($stmt)) 78 printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 79 mysqli_stmt_close($stmt); 80 81 if (!is_object(($stmt = mysqli_prepare($link, 'SET @testvar = ?')))) 82 printf("[017] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 83 84 $testvar = 'testvar'; 85 if (!mysqli_stmt_bind_param($stmt, 's', $testvar) || !mysqli_stmt_execute($stmt)) 86 printf("[018] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 87 mysqli_stmt_close($stmt); 88 89 if (!is_object(($stmt = mysqli_prepare($link, "DO GET_LOCK('testlock', 1)")))) 90 printf("[019] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 91 mysqli_stmt_close($stmt); 92 93 if (!is_object(($stmt = mysqli_prepare($link, 'SELECT id, @testvar FROM test2')))) 94 printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 95 96 $id = $testvar = null; 97 if (!mysqli_stmt_execute($stmt) || !mysqli_stmt_bind_result($stmt, $id, $testvar)) 98 printf("[021] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 99 while (mysqli_stmt_fetch($stmt)) { 100 if (('testvar' !== $testvar) || (1 !== $id)) 101 printf("[022] Expecting 'testvar'/1, got %s/%s. [%d] %s\n", 102 $testvar, $id, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 103 } 104 105 var_dump(mysqli_stmt_prepare($stmt, 'SELECT 1; SELECT 2')); 106 107 mysqli_stmt_close($stmt); 108 109 if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test', 'foo'))) 110 printf("[023] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 111 112 mysqli_close($link); 113 114 if (!is_null($tmp = @mysqli_stmt_prepare($link, 'SELECT id FROM test'))) 115 printf("[024] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 116 117 print "done!"; 118?> 119--CLEAN-- 120<?php 121require_once("connect.inc"); 122if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 123 printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 124 125if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) 126 printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 127 128if (!mysqli_query($link, "DROP TABLE IF EXISTS test2")) 129 printf("[c003] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 130 131mysqli_close($link); 132?> 133--EXPECTF-- 134bool(false) 135done! 136