1--TEST-- 2magic_quotes_runtime (DEPRECATED) 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifemb.inc'); 7require_once('skipifconnectfailure.inc'); 8 9if (version_compare(PHP_VERSION, '5.3.98') >= 0) { 10 die("skip: PHP 5.3 test"); 11} 12?> 13--INI-- 14magic_quotes_runtime=1 15--FILE-- 16<?php 17 require('connect.inc'); 18 19 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 20 printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 21 22 $query = sprintf("SELECT '%s', '%s', '%s', '%s' FROM DUAL", 23 mysqli_real_escape_string($link, "'"), 24 mysqli_real_escape_string($link, '"'), 25 mysqli_real_escape_string($link, '\0'), 26 mysqli_real_escape_string($link, '\\')); 27 28 if (!$res = mysqli_query($link, $query)) { 29 printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 30 } 31 32 while ($row = $res->fetch_assoc()) { 33 var_dump($row); 34 } 35 36 $res->free(); 37 38 $expected = array( 39 "'" => "\\'", 40 '"' => "\\\"", 41 "\\0" => "\\\\0", 42 "\\" => "\\\\", 43 ); 44 $expectedBoth = array( 45 0 => "\\'", 46 "'" => "\\'", 47 1 => "\\\"", 48 '"' => "\\\"", 49 2 => "\\\\0", 50 "\\0" => "\\\\0", 51 3 => "\\\\", 52 "\\" => "\\\\", 53 ); 54 55 if (!$res = mysqli_query($link, $query)) { 56 printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 57 } 58 $row = mysqli_fetch_row($res); 59 echo "Equal:";var_dump($row === array_values($expected)); 60 if ($row !== array_values($expected)) { 61 var_dump($row, array_values($expected)); 62 } 63 $res->free(); 64 65 if (!$res = mysqli_query($link, $query)) { 66 printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 67 } 68 $row = mysqli_fetch_array($res, MYSQLI_BOTH); 69 echo "Equal:";var_dump($row === $expectedBoth); 70 if ($row !== $expectedBoth) { 71 var_dump($row, $expectedBoth); 72 } 73 $res->free(); 74 75 class fetch_object { 76 public function __set($key, $value) { 77 printf(">%s< => >%s<\n", $key, $value); 78 } 79 } 80 81 if (!$res = mysqli_query($link, $query)) { 82 printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 83 } 84 $obj = mysqli_fetch_object($res, "fetch_object"); 85 $res->free(); 86 87 if (false && $IS_MYSQLND) { 88 if (!$res = mysqli_query($link, $query)) { 89 printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 90 } 91 $row = @mysqli_fetch_all($res, MYSQLI_ASSOC); 92 if ($row[0] !== $expected) { 93 printf("[015] Wrong data, dumping\n"); 94 var_dump($row); 95 } 96 } 97 98 $link->close(); 99 100 print "done!"; 101?> 102--EXPECTF-- 103Deprecated: Directive 'magic_quotes_runtime' is deprecated in PHP 5.3 and greater in Unknown on line %d 104 105Warning: mysqli_result::fetch_assoc(): magic_quotes_runtime are deprecated since PHP 5.3 in %s on line %d 106array(4) { 107 ["'"]=> 108 string(2) "\'" 109 ["""]=> 110 string(2) "\"" 111 ["\0"]=> 112 string(3) "\\0" 113 ["\"]=> 114 string(2) "\\" 115} 116 117Warning: mysqli_fetch_row(): magic_quotes_runtime are deprecated since PHP 5.3 in %s on line %d 118Equal:bool(true) 119 120Warning: mysqli_fetch_array(): magic_quotes_runtime are deprecated since PHP 5.3 in %s on line %d 121Equal:bool(true) 122 123Warning: mysqli_fetch_object(): magic_quotes_runtime are deprecated since PHP 5.3 in %s on line %d 124>'< => >\'< 125>"< => >\"< 126>\0< => >\\0< 127>\< => >\\< 128done! 129