Login   Register  
PHP Classes
elePHPant
Icontem

File: example.sqltypes.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Martin Alterisio  >  DATA  >  example.sqltypes.php  >  Download  
File: example.sqltypes.php
Role: Example script
Content type: text/plain
Description: An usage example
Class: DATA
Access data stored in MySQL tables like arrays
Author: By
Last change: v0.8:
- changed how array offsets are mapped to the conditions of selecting a row (for possible security problems). If available, an unique field is used, and access using the pk is provided using the special property ->byXXXX
- abstraction of sql data types and inboxing of these values into objects with constraints checking
- disabling of inboxing of sql data types is available through property ->withoutInboxing
- new exceptions hierarchy (allows more fine-grained catching of exceptions)
Date: 7 years ago
Size: 4,688 bytes
 

Contents

Class file image Download
<?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";
}
?>