1--TEST-- 2mysqli_options() - MYSQLI_OPT_INT_AND_FLOAT_NATIVE 3--EXTENSIONS-- 4mysqli 5--SKIPIF-- 6<?php 7require_once 'skipifconnectfailure.inc'; 8?> 9--FILE-- 10<?php 11 require_once "connect.inc"; 12 13 14 $types = array( 15 'BIT' => array('BIT(8)', 0), 16 'TINYINT' => array('TINYINT', 120), 17 'BOOL' => array('BOOL', 0), 18 'BOOLEAN' => array('BOOLEAN', 1), 19 'SMALLINT' => array('SMALLINT', 32000), 20 'MEDIUMINT' => array('MEDIUMINT', 999), 21 'INT' => array('INT', 999), 22 'BIGINT' => array('BIGINT', 999), 23 'FLOAT' => array('FLOAT', 1.3), 24 'DOUBLE' => array('DOUBLE', -1.3), 25 ); 26 27 foreach ($types as $name => $data) { 28 $link = mysqli_init(); 29 if (!mysqli_options($link, MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1)) { 30 printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 31 continue; 32 } 33 34 if (!my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)) { 35 printf("[002] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 36 continue; 37 } 38 39 40 if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) { 41 printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 42 continue; 43 } 44 45 if (!mysqli_query($link, sprintf("CREATE TABLE test (id %s)", $data[0]))) { 46 printf("[004] TODO [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 47 continue; 48 } 49 50 if (!mysqli_query($link, sprintf("INSERT INTO test(id) VALUES (%f)", $data[1]))) { 51 printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 52 continue; 53 } 54 55 if (!$res = mysqli_query($link, "SELECT id FROM test")) { 56 printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 57 continue; 58 } 59 60 $row = mysqli_fetch_assoc($res); 61 mysqli_free_result($res); 62 63 if ($row['id'] !== $data[1]) { 64 printf("[007] Expecting %s - %s/%s got %s/%s\n", 65 $name, 66 $data[1], gettype($data[1]), $row['id'], gettype($row['id'])); 67 } 68 mysqli_close($link); 69 70 $link = mysqli_init(); 71 if (!mysqli_options($link, MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 0)) { 72 printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 73 continue; 74 } 75 76 if (!my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)) { 77 printf("[009] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 78 continue; 79 } 80 81 if (!$res = mysqli_query($link, "SELECT id FROM test")) { 82 printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 83 continue; 84 } 85 86 $row = mysqli_fetch_assoc($res); 87 mysqli_free_result($res); 88 89 if (!is_string($row['id']) || ($row['id'] != $data[1])) { 90 printf("[011] Expecting %s - %s/string got %s/%s\n", 91 $name, 92 $data[1], $row['id'], gettype($row['id'])); 93 } 94 mysqli_close($link); 95 96 } 97 98 print "done!"; 99?> 100--CLEAN-- 101<?php 102require_once "clean_table.inc"; 103?> 104--EXPECT-- 105done! 106