Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// $Id: MDB_pear_wrapper_test.php,v 1.21 2003/01/18 21:35:19 lsmith Exp $
3
//
4
// MDB test script for the PEAR DB Wrapper.
5
//
6
 
7
// BC hack to define PATH_SEPARATOR for version of PHP prior 4.3
8
if(!defined('PATH_SEPARATOR')) {
9
    if(defined('DIRECTORY_SEPARATOR') && DIRECTORY_SEPARATOR == "\\") {
10
        define('PATH_SEPARATOR', ';');
11
    } else {
12
        define('PATH_SEPARATOR', ':');
13
    }
14
}
15
ini_set('include_path', '..'.PATH_SEPARATOR.ini_get('include_path'));
16
 
17
    require_once('MDB.php');
18
    MDB::loadFile('peardb_wrapper');
19
    require_once('Var_Dump.php');
20
 
21
    // just for kicks you can mess up this part to see some pear error handling
22
    $user = 'metapear';
23
    $pass = 'funky';
24
    //$pass = '';
25
    $host = 'localhost';
26
    $db_name = 'metapear_test_db';
27
    // Data Source Name: This is the universal connection string
28
    $dsn = "mysql://$user:$pass@$host/$db_name";
29
    // MDB::connect will return a Pear DB object on success
30
    // or a Pear DB Error object on error
31
    // You can also set to TRUE the second param
32
    // if you want a persistent connection:
33
    // $db = DB::connect($dsn, TRUE);
34
    $db =& DB::connect($dsn);
35
    // With DB::isError you can differentiate between an error or
36
    // a valid connection.
37
    //echo(Var_Dump::display($db).'<br>');
38
    if (DB::isError($db)) {
39
        die (__LINE__.$db->getMessage());
40
    }
41
 
42
    // happy query
43
    $query ='SELECT * FROM test';
44
    echo('query for the following examples:'.$query.'<br>');
45
    echo('<br>field:<br>'.$db->getOne($query).'<br>');
46
 
47
    // run the query and get a result handler
48
    $result = $db->simpleQuery($query);
49
    echo('<br>tableInfo() ');
50
    Var_Dump::display($db->tableInfo($result));
51
 
52
    $result = $db->query($query);
53
    echo('<br>numCols() ');
54
    Var_Dump::display($result->numCols());
55
    $result->fetchInto($arr);
56
    echo('<br>fetchInto() ');
57
    Var_Dump::display($arr);
58
    echo('<br>free() ');
59
    Var_Dump::display($result->free());
60
 
61
    $result = $db->query($query);
62
    echo('<br>numRows() ');
63
    Var_Dump::display($result->numRows());
64
    echo('<br>fetchRow() ');
65
    Var_Dump::display($result->fetchRow());
66
 
67
    // lets create a sequence on demand
68
    echo('<br>get the next id using on demand:<br>');
69
    echo('<br>nextId:'.$db->nextId('real_funky_id_2'));
70
    echo('<br>dropSequence:'.$db->dropSequence('real_funky_id_2'));
71
    // lets create a sequence
72
    echo('<br>create a new seq with start 3 name real_funky_id<br>');
73
    $err = $db->createSequence('real_funky_id',3);
74
    if (DB::isError($err)) {
75
        echo('<br>could not create sequence again<br>');
76
    }
77
 
78
    echo('<br>get the next id:<br>');
79
    echo($db->nextId('real_funky_id').'<br>');
80
    // lets try an prepare execute combo
81
    $alldata = array(  array(1, 'one', 'un'),
82
                       array(2, 'two', 'deux'),
83
                       array(3, 'three', 'trois'),
84
                       array(4, 'four', 'quatre'));
85
    $prepared_query = $db->prepare('INSERT INTO numbers VALUES(?,?,?)');
86
    foreach ($alldata as $row) {
87
        echo('running execute<br>');
88
        $db->execute($prepared_query, $row);
89
    }
90
    // lets try an prepare execute combo
91
    $alldata = array(  array(5, 'five', 'cinq'),
92
                       array(6, 'six', 'six'),
93
                       array(7, 'seven', 'sept'),
94
                       array(8, 'eight', 'huit'));
95
    $prepared_query = $db->prepare('INSERT INTO numbers VALUES(?,?,?)');
96
    $db->executeMultiple($prepared_query, $alldata);
97
    echo('running executeMultiple<br>');
98
    $array = array(4);
99
    echo('<br>see getOne in action:<br>'.$db->getOne('SELECT trans_en FROM numbers WHERE number = ?',$array).'<br>');
100
    // You can disconnect from the database with:
101
    echo('<br>see getRow in action:<br>');
102
    echo(Var_Dump::display($db->getRow('SELECT * FROM numbers WHERE number = ?',$array)).'<br>');
103
    echo('<br>see getCol in action:<br>');
104
    echo(Var_Dump::display($db->getCol('SELECT * FROM numbers', 1)).'<br>');
105
    echo('<br>see getAll in action:<br>');
106
    echo(Var_Dump::display($db->getAll('SELECT * FROM test')).'<br>');
107
    echo('<br>see getAssoc in action:<br>');
108
    echo(Var_Dump::display($db->getAssoc('SELECT * FROM test', FALSE, '', DB_FETCHMODE_ASSOC)).'<br>');
109
    echo('tableInfo on a string:<br>');
110
    echo(Var_Dump::display($db->tableInfo('numbers')).'<br>');
111
    echo('<br>just a simple delete query:<br>');
112
    echo(Var_Dump::display($db->query('UPDATE numbers set trans_en = 0')).'<br>');
113
    echo('<br>affected rows:<br>');
114
    echo($db->affectedRows().'<br>');
115
    echo('<br>just a simple delete query:<br>');
116
    echo(Var_Dump::display($db->query('DELETE FROM numbers')).'<br>');
117
    $db->disconnect();
118
?>