1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
include 'phpPDO_jacket.class.php';
// use your own class, if wanna
class my_db extends phpPDO_jacket {
}
// minimum options, see source for more
$opts = array(
'type' => 'mysql',
'host' => '127.0.0.1:3306',
'username' => 'accounting',
'password' => '1234',
'database' => 'sales'
);
$db = new my_db($opts);
// simple select; query is not prepared, thus cachable by MySQL
$result = $db->select("SELECT alias, name FROM users WHERE alias = 'bob'");
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo $row.' '.$row['name'].'<br/>';
}
echo '<hr/>';
// select with parameterization ie auto escaping of user input
// :str are placeholders for the values
// value data type, optional, PDO::PARAM_STR (default), PDO::PARAM_INT, PDO::PARAM_LOB
$parms = array(array(':alias1', 'bob', PDO::PARAM_STR), array(':alias2', $admin, PDO::PARAM_STR));
$result = $db->select('SELECT alias, name FROM users WHERE alias IN (:alias1,:alias2)', $parms);
while ($row = $result->fetch(PDO::FETCH_OBJ)) {
echo $row->alias.' '.$row->name.'<br/>';
}
echo '<hr/>';
// select with parameterization ie auto escaping of user input
// ? can be used as placeholders too
// value data type, optional, PDO::PARAM_STR (default), PDO::PARAM_INT, PDO::PARAM_LOB
$parms = array(array('?', 'bob'), array('?', $admin));
$result = $db->select('SELECT alias, name FROM users WHERE alias IN (?,?)', $parms);
while ($row = $result->fetch(PDO::FETCH_OBJ)) {
echo $row->alias.' '.$row->name.'<br/>';
}
echo '<hr/>';
// call a stored proc with parameterization
// results returned as an array, optionally
$sql = "CALL qtrSales(?)";
$parms = array(array('?', 4, PDO::PARAM_INT));
$rows = $db->proc($sql, $parms);
foreach ($rows as $row) {
echo $row['sales'].'<br/>';
}
echo '<hr/>';
// update query; could have also used the method update() which is an alias of execute()
$parms = array(array('?', 'Bobby'));
$nbr_affected_rows = $db->execute("UPDATE users SET name = ? WHERE alias = 'bob'", $parms);
echo $nbr_affected_rows;
echo '<hr/>';
// insert query; could have also used the method insert() which is an alias of execute()
$parms = array(array(':name', 'Bobby'), array(':alias', 'bob'));
$insert_id = $db->execute("INSERT INTO users (name, alias) VALUES (:name, :alias)", $parms);
echo $insert_id;
echo '<hr/>';
// output some info about the database server and client
$db->output_about();
// output the number of queries, explain statments ran against SELECTs, and total process time
$db->output_stats();
[/code]
|