Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F8321533
mysql.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
mysql.php
View Options
<?php
/*
* Keruald, core libraries for Pluton and Xen engines.
* (c) 2010, Sébastien Santoro aka Dereckson, some rights reserved
* Released under BSD license
*
* MySQL layer and helper class
*
* 0.1 2010-02-27 1:52 DcK
*
*/
if
(!
defined
(
'SQL_LAYER'
))
{
define
(
'SQL_LAYER'
,
'MySQL'
);
/*
* SQL layer and helper class: MySQL
*
* @package Keruald
* @subpackage Keruald
* @copyright Copyright (c) 2010, Sébastien Santoro aka Dereckson
* @license Released under BSD license
* @version 0.1
*/
class
sql_db
{
/*
* @var int the connection identifier
*/
private
$id
;
/*
* Initializes a new instance of the database abstraction class, for MySQL engine
*/
function
__construct
(
$host
=
'localhost'
,
$username
=
''
,
$password
=
''
,
$database
=
''
)
{
//Connects to MySQL server
$this
->
id
=
@
mysql_connect
(
$host
,
$username
,
$password
)
or
$this
->
sql_die
();
//Selects database
if
(
$database
!=
''
)
{
mysql_select_db
(
$database
,
$this
->
id
);
}
}
/*
* Outputs a can't connect to the SQL server message and exits.
* It's called on connect failure
*/
private
function
sql_die
()
{
//You can custom here code when you can't connect to SQL server
//e.g. in a demo or appliance context, include('start.html'); exit;
die
(
"Can't connect to SQL server."
);
}
/*
* Sends a unique query to the database
* @return mixed if the query is successful, a result identifier ; otherwise, false
*/
function
sql_query
(
$query
)
{
return
mysql_query
(
$query
,
$this
->
id
);
}
/*
* Fetches a row of result into an associative array
* @return array an associative array with columns names as keys and row values as values
*/
function
sql_fetchrow
(
$result
)
{
return
mysql_fetch_array
(
$result
);
}
/*
* Gets last SQL error information
* @return array an array with two keys, code and message, containing error information
*/
function
sql_error
()
{
$error
[
'code'
]
=
mysql_errno
(
$this
->
id
);
$error
[
'message'
]
=
mysql_error
(
$this
->
id
);
return
$error
;
}
/*
* Gets the number of rows affected or returned by a query
* @return int the number of rows affected (delete/insert/update) or the number of rows in query result
*/
function
sql_numrows
(
$result
)
{
return
mysql_num_rows
(
$result
);
}
/*
* Gets the primary key value of the last query (works only in INSERT context)
* @return int the primary key value
*/
function
sql_nextid
()
{
return
mysql_insert_id
(
$this
->
id
);
}
/*
* Express query method, returns an immediate and unique result
*
* @param string $query the query to execute
* @param string $error_message the error message
* @param boolean $return_as_string return result as string, and not as an array
* @return mixed the row or the scalar result
*/
function
sql_query_express
(
$query
=
''
,
$error_message
=
"Impossible d'exécuter cette requête."
,
$return_as_string
=
true
)
{
if
(
$query
===
''
||
$query
===
false
||
$query
===
null
)
{
//No query, no value
return
''
;
}
elseif
(!
$result
=
$this
->
sql_query
(
$query
))
{
//An error have occured
message_die
(
SQL_ERROR
,
$error_message
,
''
,
''
,
''
,
$query
);
}
else
{
//Fetches row
$row
=
$this
->
sql_fetchrow
(
$result
);
//If $return_as_string is true, returns first query item (scalar mode) ; otherwise, returns row
return
$return_as_string
?
$row
[
0
]
:
$row
;
}
}
/*
* Escapes a SQL expression
* @param string expression The expression to escape
* @return string The escaped expression
*/
function
sql_escape
(
$expression
)
{
return
mysql_real_escape_string
(
$expression
);
}
/*
* Set charset
*/
function
set_charset
(
$encoding
)
{
if
(
function_exists
(
'mysql_set_charset'
))
{
//>PHP 5.2.3
mysql_set_charset
(
$encoding
,
$this
->
id
);
}
else
{
//TODO: set connection variables to utf8
}
}
}
//Creates an instance of this database class with configuration values
$db
=
new
sql_db
(
$Config
[
'sql'
][
'host'
],
$Config
[
'sql'
][
'username'
],
$Config
[
'sql'
][
'password'
],
$Config
[
'sql'
][
'database'
]);
//To improve security, we unset sql parameters
unset
(
$Config
[
'sql'
]);
//Sets SQL connexion in UTF8. PHP 5.2.3+
$db
->
set_charset
(
'utf8'
);
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, May 13, 16:45 (17 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2570510
Default Alt Text
mysql.php (5 KB)
Attached To
Mode
rTOOLS Nasqueron Tools
Attached
Detach File
Event Timeline
Log In to Comment