<?php
 
/**
 
 * @ignore 
 
 */
 
 
/**
 
 * @ignore
 
 */
 
require_once('data.mysql5.lib.php');
 
 
echo "Connecting to database...\n";
 
$DB->connect();
 
$DB->selectSchema('test');
 
 
echo "Creating test table...\n";
 
$DB->query('DROP TABLE IF EXISTS `test_table`');
 
$DB->query('
 
    CREATE TABLE `test_table` (
 
      `id` int(11) NOT NULL auto_increment,
 
      `name` varchar(20) NOT NULL,
 
      `charfield` char(20) NOT NULL,
 
      `nullcharfield` char(20) NULL,
 
      `varcharfield` varchar(20) NOT NULL,
 
      `intfield` int NOT NULL,
 
      `nullintfield` int NULL,
 
      `smallintfield` smallint NOT NULL,
 
      `decimalfield` decimal(7,3) NOT NULL,
 
      `datefield` date NULL,
 
      `timefield` time NULL,
 
      `datetimefield` datetime NULL,
 
      PRIMARY KEY  (`id`),
 
      UNIQUE KEY `name` (`name`)
 
    )
 
');
 
 
echo "Insert valid row...\n";
 
$DB['test_table'][] = array(
 
    'name'          => 'test',
 
    'charfield'     => '20 char field',
 
    'nullcharfield' => null,
 
    'varcharfield'  => '20 varchar field',
 
    'intfield'      => 101,
 
    'nullintfield'  => null,
 
    'smallintfield' => 11,
 
    'decimalfield'  => '123.45',
 
    'datefield'     => DATA_SQLDate::today(),
 
    'timefield'     => DATA_SQLTime::now(),
 
    'datetimefield' => DATA_SQLDatetime::now(),
 
);
 
foreach ($DB['test_table']['test'] as $name => $value) {
 
    if (DATA_SQLType::isNull($value)) {
 
        echo "    $name: NULL\n";
 
    } else {
 
        echo "    $name: |$value|\n";
 
    }
 
}
 
 
echo "Insert invalid char(20) field...\n";
 
echo "  null value...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'charfield'     => null,
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
echo "  'too much characters for this field'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'charfield'     => 'too much characters for this field',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
 
echo "Insert invalid int field...\n";
 
echo "  null value...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'intfield'      => null,
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
echo "  'not a number'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'intfield'      => 'not a number',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
echo "  '12345678901234567890'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'intfield'      => '12345678901234567890',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
 
echo "Insert invalid smallint field...\n";
 
echo "  '1234567'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'smallintfield' => '1234567',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
 
echo "Insert invalid decimal(7,3) field...\n";
 
echo "  '12345'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'decimalfield'  => '12345',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
echo "  '0.1234'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'decimalfield'  => '0.1234',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
 
echo "Insert invalid date field...\n";
 
echo "  '2007-02-31'...\n";
 
try {
 
    $DB['test_table'][] = array(
 
        'name'          => 'test2',
 
        'datefield'     => '2007-02-31',
 
    );
 
} catch (DATA_SQLTypeConstraintFailed $e) {
 
    echo "    exception " . get_class($e) . " on table `" . $e->getTable() . "` and field `" . $e->getField() . "`\n";
 
}
 
?>
 
 
 |