Subversion Repositories stackman

Rev

Rev 3 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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