Magellan Linux

Annotation of /alx-src/branches/alx-web-070/include/basesql.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 13242 - (hide annotations) (download)
Tue Jul 9 15:21:55 2019 UTC (4 years, 10 months ago) by niro
File size: 2597 byte(s)
-be compatible with php7 and mysqli
1 niro 1610 <?
2    
3 niro 2182 // Verbinden
4     include('dbconn.php');
5 niro 1610
6 niro 7092 function globaling()
7     {
8     foreach ($_REQUEST as $key => $val)
9     {
10     global ${$key};
11     ${$key} = $val;
12     }
13     }
14    
15     globaling();
16    
17 niro 7091 // Codiert die Anführungszeichen in einem String, sodass man ihn
18 niro 2182 // in einem SQL-Aufruf einbinden kann
19     function redir($str)
20     {
21     $slash = "\\";
22     return str_replace("'", $slash."'", str_replace($slash, $slash.$slash, $str));
23     }
24 niro 1610
25 niro 2182 function updatestr($arr)
26     {
27     $res = '';
28     foreach($arr as $k=>$v)
29     { if($res!='') $res.=','; $res.=$k.'=\''.redir($v).'\''; }
30     return $res;
31     }
32 niro 1610
33 niro 7091 // Fügt der Tabelle $db einen neuen Datensatz mit den Werten des asso. Arrays $vals hinzu
34 niro 2182 function sqladd($db, $vals)
35     {
36 niro 13242 global $DBCONN;
37    
38 niro 2182 $q = "INSERT INTO $db (";
39     $i = 0; foreach($vals as $k=>$v) { if($i>0) { $q.=','; } $q .= redir($k); $i++; }
40     $q .= ") VALUES (";
41     $i = 0; foreach($vals as $k=>$v) { if($i>0) { $q.=','; } $q .= "'".redir($v)."'"; $i++; }
42     $q .= ');';
43 niro 1610
44 niro 13242 $result = mysqli_query($DBCONN, $q) or die("Anfrage fehlgeschlagen: " . mysqli_error($DBCONN));
45 niro 2182 }
46 niro 1610
47 niro 7091 // Führt eine Callbackfunktion für alle Elemente eines Arrays aus
48 niro 2182 function arrforeach(&$arr, $func, $params)
49     {
50     foreach($arr as $k=>$v)
51     { $func($arr[$k], $params); }
52     }
53    
54     // Holt ein array mit den Results einer MySQL-Abfrage
55     function sqlarr($query, $arrkey='', $arrval='')
56     {
57 niro 13242 global $DBCONN;
58 niro 2182 $arr = array();
59    
60 niro 13242 $result = mysqli_query($DBCONN, $query) or die("Anfrage fehlgeschlagen: " . mysqli_error($DBCONN));
61     while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC))
62 niro 1610 {
63 niro 2182 if($arrval=='')
64 niro 1610 {
65 niro 2182 if($arrkey=='') $arr[] = $line;
66     else $arr[$line[$arrkey]] = $line;
67 niro 1610 }
68 niro 2182 else
69     {
70     if($arrkey=='') $arr[] = $line[$arrval];
71     else $arr[$line[$arrkey]] = $line[$arrval];
72     }
73 niro 1610 }
74    
75 niro 2182 return $arr;
76     }
77 niro 1610
78 niro 2182 // Kopplung zw. arrforeach(sqlarr(...))
79     function sqlforeach($query, $func, $params)
80 niro 13242 {
81     $myarr = sqlarr($query);
82     arrforeach($myarr, $func, $params);
83     }
84 niro 1610
85 niro 2182 // ...
86     function sqlfirst($query, $prop='')
87     {
88 niro 13242 global $DBCONN;
89    
90     $result = mysqli_query($DBCONN, $query) or die("Anfrage fehlgeschlagen: " . mysqli_error($DBCONN));
91     if($line = mysqli_fetch_array($result, MYSQLI_ASSOC)) $res = $line;
92 niro 2182 else $res = array();
93 niro 1610
94 niro 2182 if($prop!='') $res = $res[$prop];
95     return $res;
96     }
97    
98     // ...
99     function sqlcount($what)
100     {
101     $res = sqlfirst('SELECT count(*) c FROM '.$what);
102     return $res['c'];
103     }
104    
105 niro 7110 function ping_host($host, $port, $timeout)
106     {
107     $retval = 244;
108    
109     $fp = @fsockopen($host, $port, $errCode, $errStr, $timeout);
110     //echo "Ping $host:$port ==> ";
111     if ($fp) {
112     //echo 'SUCCESS';
113     fclose($fp);
114     $retval = 0;
115     } else {
116     //echo "ERROR: $errCode - $errStr";
117     $retval = 1;
118     }
119     //echo PHP_EOL;
120    
121     return $retval;
122     }
123    
124 niro 1610 ?>