Annotation of embedaddon/php/ext/mysqli/tests/mysqli_fetch_assoc_zerofill.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_fetch_assoc() - ZEROFILL
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifemb.inc');
! 7: require_once('skipifconnectfailure.inc');
! 8: ?>
! 9: --FILE--
! 10: <?php
! 11: require_once('connect.inc');
! 12: require_once('table.inc');
! 13:
! 14: function zerofill($offset, $link, $datatype, $insert = 1) {
! 15:
! 16: mysqli_query($link, 'ALTER TABLE test DROP zero');
! 17: $sql = sprintf('ALTER TABLE test ADD zero %s UNSIGNED ZEROFILL', $datatype);
! 18: if (!mysqli_query($link, $sql)) {
! 19: // no worries - server might not support it
! 20: return true;
! 21: }
! 22:
! 23: if (!mysqli_query($link, sprintf('UPDATE test SET zero = %s', $insert))) {
! 24: printf("[%03d] UPDATE failed, [%d] %s\n",
! 25: $offset, mysqli_errno($link), mysqli_error($link));
! 26: return false;
! 27: }
! 28:
! 29: if (!($res = mysqli_query($link, 'SELECT zero FROM test LIMIT 1'))) {
! 30: printf("[%03d] SELECT failed, [%d] %s\n",
! 31: $offset, mysqli_errno($link), mysqli_error($link));
! 32: return false;
! 33: }
! 34:
! 35: $row = mysqli_fetch_assoc($res);
! 36: $meta = mysqli_fetch_fields($res);
! 37: mysqli_free_result($res);
! 38: $meta = $meta[0];
! 39: $length = $meta->length;
! 40: if ($length > strlen($insert)) {
! 41:
! 42: $expected = str_repeat('0', $length - strlen($insert));
! 43: $expected .= $insert;
! 44: if ($expected !== $row['zero']) {
! 45: printf("[%03d] Expecting '%s' got '%s'\n", $offset, $expected, $row['zero']);
! 46: return false;
! 47: }
! 48:
! 49: } else if ($length <= 1) {
! 50: printf("[%03d] Length reported is too small to run test\n", $offset);
! 51: return false;
! 52: }
! 53:
! 54: return true;
! 55: }
! 56:
! 57: zerofill(2, $link, 'TINYINT');
! 58: zerofill(3, $link, 'SMALLINT');
! 59: zerofill(4, $link, 'MEDIUMINT');
! 60: zerofill(5, $link, 'INT');
! 61: zerofill(6, $link, 'INTEGER');
! 62: zerofill(7, $link, 'BIGINT');
! 63: zerofill(8, $link, 'FLOAT');
! 64: zerofill(9, $link, 'DOUBLE');
! 65: zerofill(10, $link, 'DOUBLE PRECISION');
! 66: zerofill(11, $link, 'DECIMAL');
! 67: zerofill(12, $link, 'DEC');
! 68:
! 69: mysqli_close($link);
! 70:
! 71: print "done!";
! 72: ?>
! 73: --CLEAN--
! 74: <?php
! 75: require_once("clean_table.inc");
! 76: ?>
! 77: --EXPECTF--
! 78: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>