Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_get_warnings.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: mysqli_stmt_get_warnings() - TODO
                      3: --SKIPIF--
                      4: <?php
                      5: require_once('skipif.inc');
                      6: require_once('skipifemb.inc');
                      7: require_once('skipifconnectfailure.inc');
                      8: 
                      9: require_once("connect.inc");
                     10: 
                     11: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
                     12:        die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
                     13:                $host, $user, $db, $port, $socket));
                     14: }
                     15: 
                     16: if (!mysqli_query($link, "DROP TABLE IF EXISTS test") ||
                     17:        !mysqli_query($link, "CREATE TABLE test(id SMALLINT)"))
                     18:        die(sprintf("skip [%d] %s\n", $link->errno, $link->error));
                     19: 
                     20: if (!@mysqli_query("INSERT INTO test(id) VALUES (100001)"))
                     21:        die("skip Strict sql mode seems to be active. We won't get a warning to check for.");
                     22: 
                     23: mysqli_query($link, "DROP TABLE IF EXISTS test");
                     24: ?>
                     25: --FILE--
                     26: <?php
                     27:        require_once("connect.inc");
                     28: 
                     29:        $tmp    = NULL;
                     30:        $link   = NULL;
                     31: 
                     32:        if (!is_null($tmp = @mysqli_stmt_get_warnings()))
                     33:                printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     34: 
                     35:        if (!is_null($tmp = @mysqli_stmt_get_warnings($link)))
                     36:                printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     37: 
                     38:        require('table.inc');
                     39: 
                     40:        if (!$stmt = mysqli_stmt_init($link))
                     41:                printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
                     42: 
                     43:        if (NULL !== ($tmp = mysqli_stmt_get_warnings($stmt)))
                     44:                printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     45: 
                     46:        if (!mysqli_stmt_prepare($stmt, "DROP TABLE IF EXISTS test") || !mysqli_stmt_execute($stmt))
                     47:                printf("[005] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
                     48: 
                     49:        if (false !== ($tmp = mysqli_stmt_get_warnings($stmt)))
                     50:                printf("[006] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
                     51: 
                     52:        if (!mysqli_stmt_prepare($stmt, "CREATE TABLE test(id SMALLINT, label CHAR(1))") || !mysqli_stmt_execute($stmt))
                     53:                printf("[007] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
                     54: 
                     55:        if (false !== ($tmp = mysqli_stmt_get_warnings($stmt)))
                     56:                printf("[008] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
                     57: 
                     58:        if (!mysqli_stmt_prepare($stmt, "INSERT INTO test(id, label) VALUES (100000, 'a'), (100001, 'b')") ||
                     59:                !mysqli_stmt_execute($stmt))
                     60:                printf("[009] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
                     61: 
                     62:        if (!is_object($warning = mysqli_stmt_get_warnings($stmt)))
                     63:                printf("[010] Expecting mysqli_warning object, got %s/%s\n", gettype($warning), $warning);
                     64: 
                     65:        if ('mysqli_warning' !== get_class($warning))
                     66:                printf("[011] Expecting object of type mysqli_warning got type '%s'", get_class($warning));
                     67: 
                     68:        if (!method_exists($warning, 'next'))
                     69:                printf("[012] Object mysqli_warning seems to lack method next()\n");
                     70: 
                     71:        $i = 0;
                     72:        do {
                     73: 
                     74:                if ('' == $warning->message)
                     75:                        printf("[013 - %d] Message should not be empty\n", $i);
                     76: 
                     77:                if ('' == $warning->sqlstate)
                     78:                        printf("[014 - %d] SQL State should not be empty\n", $i);
                     79: 
                     80:                if (0 == $warning->errno)
                     81:                        printf("[015 - %d] Error number should not be zero\n", $i);
                     82: 
                     83:                $i++;
                     84: 
                     85:        } while ($warning->next());
                     86: 
                     87:        if (2 != $i)
                     88:                printf("[016] Expected 2 warnings, got %d warnings\n", $i);
                     89: 
                     90:        mysqli_stmt_close($stmt);
                     91: 
                     92:        if (NULL !== ($tmp = mysqli_stmt_get_warnings($stmt)))
                     93:                printf("[015] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
                     94: 
                     95:        mysqli_close($link);
                     96:        print "done!";
                     97: ?>
                     98: --CLEAN--
                     99: <?php
                    100:        require_once("clean_table.inc");
                    101: ?>
                    102: --EXPECTF--
                    103: Warning: mysqli_stmt_get_warnings(): invalid object or resource mysqli_stmt
                    104:  in %s on line %d
                    105: 
                    106: Warning: mysqli_stmt_get_warnings(): Couldn't fetch mysqli_stmt in %s on line %d
                    107: done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>