--TEST-- mysqli_stmt_get_result - data types --SKIPIF-- --FILE-- PHP_INT_MAX)) ? "string" : null); func_mysqli_stmt_get_result($link, $engine, "i", "INTEGER UNSIGNED", NULL, 500); /* test is broken too: we bind "integer" but value is a float func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT", -9223372036854775808, 520); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT UNSIGNED", 18446744073709551615, 560); */ func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT", NULL, 540); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT UNSIGNED", NULL, 580); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT", -1, 1780); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT UNSIGNED", 1, 1800); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT", -1 * PHP_INT_MAX + 1, 1820); func_mysqli_stmt_get_result($link, $engine, "i", "BIGINT UNSIGNED", PHP_INT_MAX, 1840); func_mysqli_stmt_get_result($link, $engine, "s", "BIGINT UNSIGNED", "18446744073709551615", 1860); func_mysqli_stmt_get_result($link, $engine, "s", "BIGINT", "-9223372036854775808", 1880); func_mysqli_stmt_get_result($link, $engine, "d", "FLOAT", -9223372036854775808 - 1.1, 600); func_mysqli_stmt_get_result($link, $engine, "d", "FLOAT", NULL, 620); func_mysqli_stmt_get_result($link, $engine, "d", "FLOAT UNSIGNED", 18446744073709551615 + 1.1, 640); func_mysqli_stmt_get_result($link, $engine, "d", "FLOAT UNSIGNED ", NULL, 660); // Yes, we need the temporary variable. The PHP casting will fouls us otherwise. $tmp = strval('-99999999.99'); func_mysqli_stmt_get_result($link, $engine, "d", "DOUBLE(10,2)", $tmp, 680, "string"); func_mysqli_stmt_get_result($link, $engine, "d", "DOUBLE(10,2)", NULL, 700); $tmp = strval('99999999.99'); func_mysqli_stmt_get_result($link, $engine, "d", "DOUBLE(10,2) UNSIGNED", $tmp , 720, "string"); func_mysqli_stmt_get_result($link, $engine, "d", "DOUBLE(10,2) UNSIGNED", NULL, 740); $tmp = strval('-99999999.99'); func_mysqli_stmt_get_result($link, $engine, "d", "DECIMAL(10,2)", $tmp, 760, "string"); func_mysqli_stmt_get_result($link, $engine, "d", "DECIMAL(10,2)", NULL, 780); $tmp = strval('99999999.99'); func_mysqli_stmt_get_result($link, $engine, "d", "DECIMAL(10,2)", $tmp, 800, "string"); func_mysqli_stmt_get_result($link, $engine, "d", "DECIMAL(10,2)", NULL, 820); // don't care about date() strict TZ warnings... func_mysqli_stmt_get_result($link, $engine, "s", "DATE", @date('Y-m-d'), 840); func_mysqli_stmt_get_result($link, $engine, "s", "DATE NOT NULL", @date('Y-m-d'), 860); func_mysqli_stmt_get_result($link, $engine, "s", "DATE", NULL, 880); func_mysqli_stmt_get_result($link, $engine, "s", "DATETIME", @date('Y-m-d H:i:s'), 900); func_mysqli_stmt_get_result($link, $engine, "s", "DATETIME NOT NULL", @date('Y-m-d H:i:s'), 920); func_mysqli_stmt_get_result($link, $engine, "s", "DATETIME", NULL, 940); func_mysqli_stmt_get_result($link, $engine, "s", "TIMESTAMP", @date('Y-m-d H:i:s'), 960); func_mysqli_stmt_get_result($link, $engine, "s", "TIME", @date('H:i:s'), 980); func_mysqli_stmt_get_result($link, $engine, "s", "TIME NOT NULL", @date('H:i:s'), 1000); func_mysqli_stmt_get_result($link, $engine, "s", "TIME", NULL, 1020); $tmp = intval(@date('Y')); func_mysqli_stmt_get_result($link, $engine, "s", "YEAR", $tmp, 1040, "integer"); func_mysqli_stmt_get_result($link, $engine, "s", "YEAR NOT NULL", $tmp, 1060, "integer"); func_mysqli_stmt_get_result($link, $engine, "s", "YEAR", NULL, 1080); $string255 = func_mysqli_stmt_bind_make_string(255); func_mysqli_stmt_get_result($link, $engine, "s", "CHAR(1)", "a", 1110, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "CHAR(255)", $string255, 1120, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "CHAR(1) NOT NULL", "a", 1140, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "CHAR(1)", NULL, 1160); $string65k = func_mysqli_stmt_bind_make_string(65535); func_mysqli_stmt_get_result($link, $engine, "s", "VARCHAR(1)", "a", 1180, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "VARCHAR(255)", $string255, 1200, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "VARCHAR(65635)", $string65k, 1220, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "VARCHAR(1) NOT NULL", "a", 1240, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "VARCHAR(1)", NULL, 1260); func_mysqli_stmt_get_result($link, $engine, "s", "BINARY(1)", "a", 1280); func_mysqli_stmt_get_result($link, $engine, "s", "BINARY(1)", chr(0), 1300); func_mysqli_stmt_get_result($link, $engine, "s", "BINARY(1) NOT NULL", "b", 1320); func_mysqli_stmt_get_result($link, $engine, "s", "BINARY(1)", NULL, 1340); func_mysqli_stmt_get_result($link, $engine, "s", "VARBINARY(1)", "a", 1360); func_mysqli_stmt_get_result($link, $engine, "s", "VARBINARY(1)", chr(0), 1380); func_mysqli_stmt_get_result($link, $engine, "s", "VARBINARY(1) NOT NULL", "b", 1400); func_mysqli_stmt_get_result($link, $engine, "s", "VARBINARY(1)", NULL, 1420); func_mysqli_stmt_get_result($link, $engine, "s", "TINYBLOB", "a", 1440); func_mysqli_stmt_get_result($link, $engine, "s", "TINYBLOB", chr(0), 1460); func_mysqli_stmt_get_result($link, $engine, "s", "TINYBLOB NOT NULL", "b", 1480); func_mysqli_stmt_get_result($link, $engine, "s", "TINYBLOB", NULL, 1500); func_mysqli_stmt_get_result($link, $engine, "s", "TINYTEXT", "a", 1520, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "TINYTEXT NOT NULL", "a", 1540, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "TINYTEXT", NULL, 1560, 'string'); // Note: you cannot insert any blob values this way. But you can check the API at least partly this way // Extra BLOB tests are in mysqli_stmt_send_long() func_mysqli_stmt_get_result($link, $engine, "b", "BLOB", "", 1580); func_mysqli_stmt_get_result($link, $engine, "b", "TEXT", "", 1600, 'string'); func_mysqli_stmt_get_result($link, $engine, "b", "MEDIUMBLOB", "", 1620); func_mysqli_stmt_get_result($link, $engine, "b", "MEDIUMTEXT", "", 1640, 'string'); /* Is this one related? http://bugs.php.net/bug.php?id=35759 */ func_mysqli_stmt_get_result($link, $engine, "b", "LONGBLOB", "", 1660); func_mysqli_stmt_get_result($link, $engine, "b", "LONGTEXT", "", 1680, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "ENUM('a', 'b')", "a", 1700, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "ENUM('a', 'b')", NULL, 1720, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "SET('a', 'b')", "a", 1740, 'string'); func_mysqli_stmt_get_result($link, $engine, "s", "SET('a', 'b')", NULL, 1760, 'string'); mysqli_close($link); print "done!"; ?> --CLEAN-- --EXPECT-- done!