| 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 |
?>
|