File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / pdo_odbc / tests / long_columns.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:47:59 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_17p0, v5_3_10, HEAD
php

--TEST--
PDO ODBC "long" columns
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_odbc')) print 'skip not loaded';
?>
--FILE--
<?php
require 'ext/pdo/tests/pdo_test.inc';
$db = PDOTest::test_factory('ext/pdo_odbc/tests/common.phpt');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data CLOB)')) {
	if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data longtext)')) {
		if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data varchar(4000))')) {
			die("BORK: don't know how to create a long column here:\n" . implode(", ", $db->errorInfo()));
		}
	}
}

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sizes = array(32, 64, 128, 253, 254, 255, 256, 257, 258, 512, 1024, 2048, 3998, 3999, 4000);

$db->beginTransaction();
$insert = $db->prepare('INSERT INTO TEST VALUES (?, ?)');
foreach ($sizes as $num) {
	$insert->execute(array($num, str_repeat('i', $num)));
}
$insert = null;
$db->commit();

foreach ($db->query('SELECT id, data from TEST') as $row) {
	$expect = str_repeat('i', $row[0]);
	if (strcmp($expect, $row[1])) {
		echo "Failed on size $row[id]:\n";
		printf("Expected %d bytes, got %d\n", strlen($expect), strlen($row['data']));
		echo bin2hex($expect) . "\n";
		echo bin2hex($row['data']) . "\n";
	}
}

echo "Finished\n";

--EXPECT--
Finished

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