diff options
Diffstat (limited to 'db.php')
| -rw-r--r-- | db.php | 106 | 
1 files changed, 0 insertions, 106 deletions
@@ -1,106 +0,0 @@ -<?php -/* - * File: ratatoeskr/sys/db.php - *  - * Helper functions for dealing with MySQL. - *  - * License: - * This file is part of Ratatöskr. - * Ratatöskr is licensed unter the MIT / X11 License. - * See "ratatoeskr/licenses/ratatoeskr" for more information. - */ - -require_once(dirname(__FILE__) . "/../config.php"); -require_once(dirname(__FILE__) . "/utils.php"); - -/* - * Function: db_connect - * - * Establish a connection to the MySQL database. - */ -function db_connect() -{ -	global $config; -	$db_connection = mysql_pconnect( -		$config["mysql"]["server"], -		$config["mysql"]["user"], -		$config["mysql"]["passwd"]); -	if(!$db_connection) -		die("Could not connect to database server. " . mysql_error()); -	 -	if(!mysql_select_db($config["mysql"]["db"], $db_connection)) -		die("Could not open database. " . mysql_error()); - -	mysql_query("SET NAMES 'utf8'", $db_connection); -} - -function sqlesc($str) -{ -	return mysql_real_escape_string($str); -} - -/* - * Function: qdb_vfmt - * Like <qdb_fmt>, but needs arguments as single array.  - *  - * Parameters: - * 	$args - The arguments as an array. - *  - * Returns: - * 	The formatted string. - */ -function qdb_vfmt($args) -{ -	global $config; -	 -	if(count($args) < 1) -		throw new InvalidArgumentException('Need at least one parameter'); -	 -	$query = $args[0]; -	 -	$data = array_map(function($x) { return is_string($x) ? sqlesc($x) : $x; }, array_slice($args, 1)); -	$query = str_replace("PREFIX_", $config["mysql"]["prefix"], $query); -	 -	return vsprintf($query, $data); -} - -/* - * Function: qdb_fmt - * Formats a string like <qdb>, that means it replaces "PREFIX_" and <sqlesc>'s everything before sends everything to vsprintf. - *  - * Returns: - * 	The formatted string. - */ -function qdb_fmt() -{ -	return qdb_vfmt(func_get_args()); -} - - -/* - * Function: qdb - * Query Database. - *  - * This function replaces mysql_query and should eliminate SQL-Injections. - * Use it like this: - *  - * $result = qdb("SELECT `foo` FROM `bar` WHERE `id` = %d AND `baz` = '%s'", 100, "lol"); - *  - * It will also replace "PREFIX_" with the prefix defined in 'config.php'. - */ -function qdb() -{ -	$query = qdb_vfmt(func_get_args()); -	$rv = mysql_query($query); -	if($rv === false) -		throw new MySQLException(mysql_errno() . ': ' . mysql_error() . (__DEBUG__ ? ("[[FULL QUERY: " . $query . "]]") : "" )); -	return $rv; -} - -/* - * Class: MySQLException - * Will be thrown by qdb*, if the query induced an MySQL error. - */ -class MySQLException extends Exception { } - -?>  | 
