OSDN Git Service

test commit
[exhaust/zubora.git] / zubora.phpl
1 <?php\r
2 require_once(dirname(__FILE__)."/configure.phpl");\r
3 \r
4 \r
5 /* 変更不可定数 */\r
6 $ZUBORA = array();\r
7 define("ADDR_ECHO", 0);\r
8 define("ADDR_GET_INFOMATION", 0);\r
9 define("ADDR_GET_BALANCE", 1);\r
10 define("DB_CONNECT",DB.":host=".DB_HOST.";dbname=".DB_NAME);\r
11 define("PREFIX_SEP_DB","_");\r
12 define("PREFIX_SEP_MAIL",".");\r
13 define("TBL","books,users,mails,subscribes,himoku,balance");\r
14 $ZUBORA["tables"] = explode(",",TBL);\r
15 foreach($ZUBORA["tables"] as $table){\r
16         define("TBL_".strtoupper($table),PREFIX.PREFIX_SEP_DB.$table);\r
17 }\r
18 \r
19 /* ライブラリ */\r
20 \r
21 //データベース入出力クラス\r
22 class ZuboraDB{\r
23         var $isConnected = false;\r
24         var $queryResult = null;\r
25         var $pdo = null;\r
26         var $ERROR = "";\r
27         function ZuboraDB(){}\r
28         function connect(){\r
29                 if(!$this->isConnected){\r
30                         try{\r
31                                 $this->pdo = new PDO(DB_CONNECT,DB_USER,DB_PASSWORD);\r
32                                 $this->isConnected = true;\r
33                                 return true;\r
34                         } catch (PDOException $e) {\r
35                                  $this->ERROR .= "DB connection error!: " . $e->getMessage() . "\n";\r
36                                  throw new Exception($this->ERROR);\r
37                         }\r
38                 }\r
39         }\r
40         /*\r
41         function query($sql){\r
42                 $this->connect();\r
43                 return $this->pdo->query($sql);\r
44         }\r
45         function closeCursor(){\r
46                 return  $this->pdo->closeCursor();\r
47         }\r
48         */\r
49         function isExist($table){\r
50                 if (preg_match("/^[_\-a-z0-9]+$/i",$table)){\r
51                         $q = $this->pdo->prepare("SELECT * FROM ".$table.";");\r
52                         return $q->execute();\r
53                 }else{\r
54                         throw new Exception("Charactor Error!: table name must be [-_0-9a-zA-Z]+\n");\r
55                 }\r
56         }\r
57         function getBook($book,$domain){\r
58                 $this->connect();\r
59                 $stmt = $this->pdo->prepare("SELECT * FROM ".TBL_BOOKS." WHERE book = ? and domain = ?;");\r
60                 $stmt->bindParam(1, $book, PDO::PARAM_STR,30);\r
61                 $stmt->bindParam(2, $domain, PDO::PARAM_STR,250);\r
62                 if(!$stmt->execute()){\r
63                         $er = $stmt->errorInfo();\r
64                         $this->ERROR .= $er[2];\r
65                         return false;\r
66                 }else{\r
67                         return $stmt->fetch(PDO::FETCH_ASSOC);\r
68                 }\r
69         }\r
70         function getMainMailAddr($from){\r
71                 $this->connect();\r
72                 $stmt = $this->pdo->prepare("SELECT mail FROM ".TBL_MAILS." WHERE submail = ?;");\r
73                 $stmt->bindParam(1, $from, PDO::PARAM_STR,250);\r
74                 if(!$stmt->execute()){\r
75                         $er = $stmt->errorInfo();\r
76                         $this->ERROR .= $er[2];\r
77                         return false;\r
78                 }else{\r
79                         $result = $stmt->fetch(PDO::FETCH_ASSOC);\r
80                         if(false === $result){\r
81                                 $this->ERROR .= "error! mail addr not found!\n";\r
82                                 return false;\r
83                         }else{\r
84                                 return $result["mail"];\r
85                         }\r
86                 }\r
87         }\r
88         function isSubscribed($book,$mail){\r
89                 $this->connect();\r
90                 $stmt = $this->pdo->prepare("SELECT * FROM ".TBL_SUBSCRIBES." WHERE book = ? and mail = ?;");\r
91                 $stmt->bindParam(1, $book, PDO::PARAM_STR,30);\r
92                 $stmt->bindParam(2, $mail, PDO::PARAM_STR,250);\r
93                 if(!$stmt->execute()){\r
94                         $er = $stmt->errorInfo();\r
95                         $this->ERROR .= $er[2];\r
96                         return false;\r
97                 }else{\r
98                         if(false === $stmt->fetch(PDO::FETCH_ASSOC)){\r
99                                 return false;\r
100                         }else{\r
101                                 return true;\r
102                         }\r
103                 }\r
104         }\r
105         function getHimoku($book,$himoku){\r
106                 $this->connect();\r
107                 $stmt = $this->pdo->prepare("SELECT * FROM ".TBL_HIMOKU." WHERE book = ? and himoku = ?;");\r
108                 $stmt->bindParam(1, $book, PDO::PARAM_STR,30);\r
109                 $stmt->bindParam(2, $himoku, PDO::PARAM_STR,30);\r
110                 if(!$stmt->execute()){\r
111                         $er = $stmt->errorInfo();\r
112                         $this->ERROR .= $er[2];\r
113                         return false;\r
114                 }else{\r
115                         return $stmt->fetch(PDO::FETCH_ASSOC);\r
116                 }\r
117         }\r
118         function addBalance($book,$himoku,$val,$mail,$note){\r
119                 $this->connect();\r
120                 $stmt = $this->pdo->prepare("INSERT INTO ".TBL_BALANCE." (id,book,himoku,val,mail,note,date) VALUES (?,?,?,?,?,?,CURRENT_TIMESTAMP);");\r
121                 $stmt->bindParam(1, md5(uniqid()), PDO::PARAM_STR,32);\r
122                 $stmt->bindParam(2, $book, PDO::PARAM_STR,30);\r
123                 $stmt->bindParam(3, $himoku, PDO::PARAM_STR,30);\r
124                 $stmt->bindParam(4, $val, PDO::PARAM_INT);\r
125                 $stmt->bindParam(5, $mail, PDO::PARAM_STR,250);\r
126                 $stmt->bindParam(6, $note, PDO::PARAM_STR);\r
127                 if(!$stmt->execute()){\r
128                         $er = $stmt->errorInfo();\r
129                         $this->ERROR .= $er[2];\r
130                         return false;\r
131                 }else{\r
132                         return true;\r
133                 }\r
134         }\r
135 }\r
136 ?>\r