OSDN Git Service

Comment out the <add for garble measure> section for easy debagging.
[nucleus-jp/nucleus-jp-ancient.git] / utf8 / nucleus / libs / sql / mysql.php
1 <?php
2
3 /*
4  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
5  * Copyright (C) 2002-2011 The Nucleus Group
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  * (see nucleus/documentation/index.html#license for more info)
12  */
13 /**
14  * @license http://nucleuscms.org/license.txt GNU General Public License
15  * @copyright Copyright (C) 2002-2011 The Nucleus Group
16  * @version $Id$
17  */
18  
19 /*
20  * complete sql_* wrappers for mysql functions
21  *
22  * functions moved from globalfunctions.php: sql_connect, sql_disconnect, sql_query
23  */
24
25
26 $MYSQL_CONN = 0;
27
28 if (function_exists('mysql_query') && !function_exists('sql_fetch_assoc'))
29 {
30         /**
31          *Errors before the database connection has been made
32          */
33         function startUpError($msg, $title) {
34                 ?>
35 <html xmlns="http://www.w3.org/1999/xhtml">
36         <head><title><?php echo htmlspecialchars($title)?></title></head>
37         <body>
38                 <h1><?php echo htmlspecialchars($title)?></h1>
39                 <?php echo $msg?>
40         </body>
41 </html>
42 <?php
43                 exit;
44         }
45
46         /**
47           * Connects to mysql server with arguments
48           */
49         function sql_connect_args($mysql_host = 'localhost', $mysql_user = '', $mysql_password = '', $mysql_database = '') {
50                 
51                 $CONN = @mysql_connect($mysql_host, $mysql_user, $mysql_password);
52                 if ($mysql_database) mysql_select_db($mysql_database,$CONN);
53
54                 return $CONN;
55         }
56         
57         /**
58           * Connects to mysql server
59           */
60         function sql_connect() {
61                 global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;
62
63                 $MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('<p>Could not connect to MySQL database.</p>', 'Connect Error');
64                 mysql_select_db($MYSQL_DATABASE) or startUpError('<p>Could not select database: ' . mysql_error() . '</p>', 'Connect Error');
65 /*
66 // <add for garble measure>
67                 $resource = sql_query("show variables LIKE 'character_set_database'");
68                 $fetchDat = sql_fetch_assoc($resource);
69                 $charset  = $fetchDat['Value'];
70                 $mySqlVer = implode('.', array_map('intval', explode('.', sql_get_server_info($MYSQL_CONN))));
71                 if ($mySqlVer >= '5.0.7' && function_exists('mysql_set_charset')) {
72                         mysql_set_charset($charset);
73                 } elseif ($mySqlVer >= '4.1.0') {
74                         sql_query("SET CHARACTER SET " . $charset);
75                 }
76 // </add for garble measure>*/
77 */
78                 return $MYSQL_CONN;
79         }
80
81         /**
82           * disconnects from SQL server
83           */
84         function sql_disconnect($conn = false) {
85                 global $MYSQL_CONN;
86                 if (!$conn) $conn = $MYSQL_CONN;
87                 @mysql_close($conn);
88         }
89         
90         function sql_close($conn = false) {
91                 global $MYSQL_CONN;
92                 if (!$conn) $conn = $MYSQL_CONN;
93                 @mysql_close($conn);
94         }
95         
96         /**
97           * executes an SQL query
98           */
99         function sql_query($query, $conn = false) {
100                 global $SQLCount,$MYSQL_CONN;
101                 if (!$conn) $conn = $MYSQL_CONN;
102                 $SQLCount++;
103                 $res = mysql_query($query,$conn) or print("mySQL error with query $query: " . mysql_error($conn) . '<p />');
104                 return $res;
105         }
106         
107         /**
108           * executes an SQL error
109           */
110         function sql_error($conn = false)
111         {
112                 global $MYSQL_CONN;
113                 if (!$conn) $conn = $MYSQL_CONN;
114                 return mysql_error($conn);
115         }
116         
117         /**
118           * executes an SQL db select
119           */
120         function sql_select_db($db,$conn = false)
121         {
122                 global $MYSQL_CONN;
123                 if (!$conn) $conn = $MYSQL_CONN;
124                 return mysql_select_db($db,$conn);
125         }
126         
127         /**
128           * executes an SQL real escape 
129           */
130         function sql_real_escape_string($val,$conn = false)
131         {
132                 global $MYSQL_CONN;
133                 if (!$conn) $conn = $MYSQL_CONN;
134                 return mysql_real_escape_string($val,$conn);
135         }
136         
137         /**
138           * executes an PDO::quote() like escape, ie adds quotes arround the string and escapes chars as needed 
139           */
140         function sql_quote_string($val,$conn = false) {
141                 global $MYSQL_CONN;
142                 if (!$conn) $conn = $MYSQL_CONN;
143                 return "'".mysql_real_escape_string($val,$conn)."'";
144         }
145         
146         /**
147           * executes an SQL insert id
148           */
149         function sql_insert_id($conn = false)
150         {
151                 global $MYSQL_CONN;
152                 if (!$conn) $conn = $MYSQL_CONN;
153                 return mysql_insert_id($conn);
154         }
155         
156         /**
157           * executes an SQL result request
158           */
159         function sql_result($res, $row, $col)
160         {
161                 return mysql_result($res,$row,$col);
162         }
163         
164         /**
165           * frees sql result resources
166           */
167         function sql_free_result($res)
168         {
169                 return mysql_free_result($res);
170         }
171         
172         /**
173          * returns number of rows in SQL result
174          */
175         function sql_num_rows($res)
176         {
177                 return mysql_num_rows($res);
178         }
179         
180         /**
181          * returns number of rows affected by SQL query
182          */
183         function sql_affected_rows($conn = false)
184         {
185                 global $MYSQL_CONN;
186                 if (!$conn) $conn = $MYSQL_CONN;
187                 return mysql_affected_rows($conn);
188         }
189         
190         /**
191           * Get number of fields in result
192           */
193         function sql_num_fields($res)
194         {
195                 return mysql_num_fields($res);
196         }
197         
198         /**
199           * fetches next row of SQL result as an associative array
200           */
201         function sql_fetch_assoc($res)
202         {
203                 return mysql_fetch_assoc($res);
204         }
205         
206         /**
207           * Fetch a result row as an associative array, a numeric array, or both
208           */
209         function sql_fetch_array($res)
210         {
211                 return mysql_fetch_array($res);
212         }
213         
214         /**
215           * fetches next row of SQL result as an object
216           */
217         function sql_fetch_object($res)
218         {
219                 return mysql_fetch_object($res);
220         }
221         
222         /**
223           * Get a result row as an enumerated array
224           */
225         function sql_fetch_row($res)
226         {
227                 return mysql_fetch_row($res);
228         }
229         
230         /**
231           * Get column information from a result and return as an object
232           */
233         function sql_fetch_field($res,$offset = 0)
234         {
235                 return mysql_fetch_field($res,$offset);
236         }
237         
238         /**
239           * Get current system status (returns string)
240           */
241         function sql_stat($conn=false)
242         {
243                 global $MYSQL_CONN;
244                 if (!$conn) $conn = $MYSQL_CONN;
245                 return mysql_stat($conn);
246         }
247         
248         /**
249           * Returns the name of the character set
250           */
251         function sql_client_encoding($conn=false)
252         {
253                 global $MYSQL_CONN;
254                 if (!$conn) $conn = $MYSQL_CONN;
255                 return mysql_client_encoding($conn);
256         }
257         
258         /**
259           * Get SQL client version
260           */
261         function sql_get_client_info()
262         {
263                 return mysql_get_client_info();
264         }
265         
266         /**
267           * Get SQL server version
268           */
269         function sql_get_server_info($conn=false)
270         {
271                 global $MYSQL_CONN;
272                 if (!$conn) $conn = $MYSQL_CONN;
273                 return mysql_get_server_info($conn);
274         }
275         
276         /**
277           * Returns a string describing the type of SQL connection in use for the connection or FALSE on failure
278           */
279         function sql_get_host_info($conn=false)
280         {
281                 global $MYSQL_CONN;
282                 if (!$conn) $conn = $MYSQL_CONN;
283                 return mysql_get_host_info($conn);
284         }
285         
286         /**
287           * Returns the SQL protocol on success, or FALSE on failure. 
288           */
289         function sql_get_proto_info($conn=false)
290         {
291                 global $MYSQL_CONN;
292                 if (!$conn) $conn = $MYSQL_CONN;
293                 return mysql_get_proto_info($conn);
294         }
295
296         /**
297          * Get the name of the specified field in a result
298          */
299         function sql_field_name($res, $offset = 0)
300         {
301                 return mysql_field_name($res, $offset);
302         }
303
304 /**************************************************************************
305         Unimplemented mysql_* functions
306         
307 # mysql_ data_ seek (maybe useful)
308 # mysql_ errno (maybe useful)
309 # mysql_ fetch_ lengths (maybe useful)
310 # mysql_ field_ flags (maybe useful)
311 # mysql_ field_ len (maybe useful)
312 # mysql_ field_ seek (maybe useful)
313 # mysql_ field_ table (maybe useful)
314 # mysql_ field_ type (maybe useful)
315 # mysql_ info (maybe useful)
316 # mysql_ list_ processes (maybe useful)
317 # mysql_ ping (maybe useful)
318 # mysql_ set_ charset (maybe useful, requires php >=5.2.3 and mysql >=5.0.7)
319 # mysql_ thread_ id (maybe useful)
320
321 # mysql_ db_ name (useful only if working on multiple dbs which we do not do)
322 # mysql_ list_ dbs (useful only if working on multiple dbs which we do not do)
323
324 # mysql_ pconnect (probably not useful and could cause some unintended performance issues)
325 # mysql_ unbuffered_ query (possibly useful, but complicated and not supported by all database drivers (pdo))
326
327 # mysql_ change_ user (deprecated)
328 # mysql_ create_ db (deprecated)
329 # mysql_ db_ query (deprecated)
330 # mysql_ drop_ db (deprecated)
331 # mysql_ escape_ string (deprecated)
332 # mysql_ list_ fields (deprecated)
333 # mysql_ list_ tables (deprecated)
334 # mysql_ tablename (deprecated)
335
336 *******************************************************************/
337
338         /**
339           * for JP installer only
340           */
341         function at_sql_query($query, $conn = false) {
342                 global $SQLCount,$MYSQL_CONN;
343                 if (!$conn) $conn = $MYSQL_CONN;
344                 $SQLCount++;
345                 $res = mysql_query($query,$conn);
346                 return $res;
347         }
348 }
349 ?>