# along with this program. If not, see <http://www.gnu.org/licenses/>.
-require_once(__DIR__ . '/encode.php');
-require_once(__DIR__ . '/format.php');
+require_once(__DIR__.'/'.'encode.php');
+require_once(__DIR__.'/'.'format.php');
# db_connect() -- connect to a mysql database
#
# the database connection handle. You'll only need this if you want to have
# multiple databases open at once.
-function db_connect($database = 'auto', $user = 'auto', $pass = 'auto', $host = 'localhost') {
+function db_enc_sql($str) {
+ return mysql_real_escape_string($str, $GLOBALS['wfpl_db_handle'] ? $GLOBALS['wfpl_db_handle'] : null);
+}
+
+function db_connect($database = 'auto', $user = 'auto', $pass = 'auto', $host = 'localhost', $encoding = 'utf8') {
if($database == 'auto') {
if(isset($GLOBALS['db_name'])) {
$database = $GLOBALS['db_name'];
die('Could not connect to the database: ' . mysql_error());
}
+ mysql_set_charset($encoding, $GLOBALS['wfpl_db_handle']);
+
if(!mysql_select_db($database, $GLOBALS['wfpl_db_handle'])) {
die("Couldn not access database \"$database\": " . mysql_error($GLOBALS['wfpl_db_handle']));
}
$str = substr($str, $pos + 2);
if($chr == '"') {
- $out .= '"' . enc_sql(array_shift($args)) . '"';
+ $out .= '"' . db_enc_sql(array_shift($args)) . '"';
} elseif($chr == 's') {
- $out .= enc_sql(array_shift($args));
+ $out .= db_enc_sql(array_shift($args));
} elseif($chr == 'i') {
$int = format_int(array_shift($args));
if($int == '') $int = '0';
}
+# helper function
function db_send_get($table, $columns, $where, $args) {
$sql = "SELECT $columns FROM $table";
if($where) {
}
+# if no results: returs []
function db_get_rows($table, $columns, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
}
# like db_get_rows, but return array of hashes.
+# if no results: returs []
function db_get_assocs($table, $columns, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
return $rows;
}
+# if no results: returs []
function db_get_column($table, $columns, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
return $column;
}
+# returns first matching row
+# if no results: returns false
function db_get_row($table, $columns, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
}
# like db_get_row, but return a hash.
+# if no results: returns false
function db_get_assoc($table, $columns, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
return $row;
}
-function db_get_value($table, $columns, $where = '') {
+# if no results: returns false
+function db_get_value($table, $column, $where = '') {
$args = func_get_args();
$args = array_slice($args, 3);
- $result = db_send_get($table, $columns, $where, $args);
+ $result = db_send_get($table, $column, $where, $args);
$value = mysql_fetch_row($result);
if($value !== false) {
return $value;
}
+# returns an integer
function db_count($table, $where = '') {
$args = func_get_args();
array_splice($args, 1, 0, array('count(*)'));
- return call_user_func_array('db_get_value', $args);
+ return (int) call_user_func_array('db_get_value', $args);
}
# call either of these ways:
$sql = '';
foreach($values as $value) {
if($sql) $sql .= ',';
- $sql .= '"' . enc_sql($value) . '"';
+ $sql .= '"' . db_enc_sql($value) . '"';
}
$sql = "$command INTO $table ($columns) values($sql)";
if($sql != '') {
$sql .= ', ';
}
- $sql .= $columns[$i] . ' = "' . enc_sql($values[$i]) . '"';
+ $sql .= $columns[$i] . ' = "' . db_enc_sql($values[$i]) . '"';
}