Subversion Repositories stackman

Rev

Rev 3 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 daniel-mar 1
<?php
2
 
3
$vts_mysqli = null;
4
 
5
# ---
6
 
6 daniel-mar 7
$stam_cfg = array();
8
$stam_cfg['db_host'] = null;
9
$stam_cfg['db_user'] = null;
10
$stam_cfg['db_pass'] = null;
11
$stam_cfg['db_base'] = null;
12
 
3 daniel-mar 13
require __DIR__ . '/config.inc.php';
14
 
15
$db_host = $stam_cfg['db_host'];
16
$db_user = $stam_cfg['db_user'];
17
$db_pass = $stam_cfg['db_pass'];
18
$db_base = $stam_cfg['db_base'];
19
 
20
if (!db_connect($db_host, $db_user, $db_pass)) {
21
        fwrite(STDERR, "MySQL connect error\n");
22
        exit(2);
23
}
24
 
25
if (!db_select_db($db_base)) {
26
        fwrite(STDERR, "MySQL DB select error\n");
27
        db_close();
28
        exit(2);
29
}
30
 
31
register_shutdown_function('db_close');
32
 
33
# ---
34
 
35
// Sendet eine Anfrage an MySQL
36
function db_query($query, $link_identifier=NULL) {
37
        global $vts_mysqli;
38
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->query($query, $resultmode=MYSQLI_STORE_RESULT);
39
}
40
 
41
// Maskiert spezielle Zeichen innerhalb eines Strings für die Verwendung in einer SQL-Anweisung
42
function db_real_escape_string($unescaped_string, $link_identifier=NULL) {
43
        global $vts_mysqli;
44
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->escape_string($unescaped_string);
45
}
46
 
47
// Öffnet eine Verbindung zu einem MySQL-Server
48
function db_connect($server=null, $username=null, $password=null, $new_link=false, $client_flags=0) {
49
        global $vts_mysqli;
50
        $ary = explode(':', $server);
51
        $host = $ary[0];
6 daniel-mar 52
        $ini_port = ini_get("mysqli.default_port");
53
        $port = isset($ary[1]) ? (int)$ary[1] : ($ini_port ? (int)$ini_port : 3306);
54
        if (is_null($server)) $server = ini_get("mysqli.default_host");
55
        if (is_null($username)) $username = ini_get("mysqli.default_user");
56
        if (is_null($password)) $password = ini_get("mysqli.default_password");
3 daniel-mar 57
        $vts_mysqli = new mysqli($host, $username, $password, /*dbname*/'', $port, ini_get("mysqli.default_socket"));
58
        return (empty($vts_mysqli->connect_error) && ($vts_mysqli->connect_errno == 0)) ? $vts_mysqli : false;
59
}
60
 
61
// Schließt eine Verbindung zu MySQL
62
function db_close($link_identifier=NULL) {
63
        global $vts_mysqli;
64
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->close();
65
}
66
 
67
// Auswahl einer MySQL Datenbank
68
function db_select_db($database_name, $link_identifier=NULL) {
69
        global $vts_mysqli;
70
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->select_db($database_name);
71
}
72
 
73
define('DB_ASSOC', MYSQLI_ASSOC);
74
define('DB_NUM',   MYSQLI_NUM);
75
define('DB_BOTH',  MYSQLI_BOTH);
76
function db_fetch_array($result, $result_type=DB_BOTH) {
77
        return $result->fetch_array($result_type);
78
}
79
 
80
// Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
81
function db_insert_id($link_identifier=NULL) {
82
        global $vts_mysqli;
83
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->insert_id;
84
}
85
 
86
// Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation
87
function db_affected_rows($link_identifier=NULL) {
88
        global $vts_mysqli;
89
        return (!is_null($link_identifier) ? $link_identifier : $vts_mysqli)->affected_rows;
90
}
91
 
92
// Liefert die Anzahl der Zeilen im Ergebnis
93
function db_num_rows($result) {
94
        return $result->num_rows;
95
}
96
 
97
// Liefert den Fehlertext der zuvor ausgeführten MySQL Operation
98
function db_error($link_identifier=NULL) {
99
        global $vts_mysqli;
100
        $x = (!is_null($link_identifier) ? $link_identifier : $vts_mysqli);
101
        return !empty($x->connect_error) ? $x->connect_error : $x->error;
102
}
103