-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDB.php
46 lines (42 loc) · 1.19 KB
/
DB.php
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
<?php
namespace koolreport\querybuilder;
class DB
{
static function table()
{
$params = func_get_args();
$query = new Query();
call_user_func_array(array($query,"from"),$params);
return $query;
}
static function raw($text,$params=null)
{
if($params!=null)
{
foreach($params as $value)
{
if(gettype($value)=="string")
{
$value = DB::escapeString($value);
$text = preg_replace("/\?/", "'$value'", $text, 1);
}
else
{
$text = preg_replace("/\?/", $value, $text, 1);
}
}
}
return array("[{raw}]",$text);
}
static function escapeString($string)
{
$search = array("\\", "\x00", "\n", "\r", "'", '"', "\x1a");
$replace = array("\\\\","\\0","\\n", "\\r", "\'", '\"', "\\Z");
return str_replace($search, $replace, $string);
}
static function call($procedureName,$params=array()) {
$query = new Query();
$query->call($procedureName,$params);
return $query;
}
}