Annotation of embedaddon/php/ext/pgsql/tests/08escape.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: PostgreSQL escape functions
! 3: --SKIPIF--
! 4: <?php include("skipif.inc"); ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: include 'config.inc';
! 9: define('FILE_NAME', dirname(__FILE__) . '/php.gif');
! 10:
! 11: // pg_escape_string() test
! 12: $before = "ABC\\ABC\'";
! 13: $expect = "ABC\\\\ABC\\'";
! 14: $after = pg_escape_string($before);
! 15: if ($expect === $after) {
! 16: echo "pg_escape_string() is Ok\n";
! 17: }
! 18: else {
! 19: echo "pg_escape_string() is NOT Ok\n";
! 20: var_dump($before);
! 21: var_dump($after);
! 22: var_dump($expect);
! 23: }
! 24:
! 25: // pg_escape_bytea() test
! 26: $before = "ABC\\ABC";
! 27: $expect = "ABC\\\\\\\\ABC";
! 28: $after = pg_escape_bytea($before);
! 29: if ($expect === $after) {
! 30: echo "pg_escape_bytea() is Ok\n";
! 31: }
! 32: else {
! 33: echo "pg_escape_byte() is NOT Ok\n";
! 34: var_dump($before);
! 35: var_dump($after);
! 36: var_dump($expect);
! 37: }
! 38:
! 39: // Test using database
! 40: $data = file_get_contents(FILE_NAME);
! 41: $db = pg_connect($conn_str);
! 42:
! 43: // Insert binary to DB
! 44: $escaped_data = pg_escape_bytea($data);
! 45: pg_query("DELETE FROM ".$table_name." WHERE num = -9999;");
! 46: $sql = "INSERT INTO ".$table_name." (num, bin) VALUES (-9999, CAST ('".$escaped_data."' AS BYTEA));";
! 47: pg_query($db, $sql);
! 48:
! 49: // Retrieve binary from DB
! 50: $sql = "SELECT bin::bytea FROM ".$table_name." WHERE num = -9999";
! 51: $result = pg_query($db, $sql);
! 52: $row = pg_fetch_array($result, 0, PGSQL_ASSOC);
! 53:
! 54: if ($data === pg_unescape_bytea($row['bin'])) {
! 55: echo "pg_escape_bytea() actually works with database\n";
! 56: }
! 57: else {
! 58: echo "pg_escape_bytea() is broken\n";
! 59: }
! 60:
! 61: ?>
! 62: --EXPECT--
! 63: pg_escape_string() is NOT Ok
! 64: string(9) "ABC\ABC\'"
! 65: string(12) "ABC\\ABC\\''"
! 66: string(10) "ABC\\ABC\'"
! 67: pg_escape_bytea() is Ok
! 68: pg_escape_bytea() actually works with database
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>