%PDF- %PDF-
Direktori : /home/lightco1/luminero.com.au/libraries/compojoom/query/ |
Current File : /home/lightco1/luminero.com.au/libraries/compojoom/query/helper.php |
<?php /** * @package Lib_Compojoom * @author DanielDimitrov <daniel@compojoom.com> * @date 08.01.2015 * * @copyright Copyright (C) 2008 - 2013 compojoom.com . All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die('Restricted access'); /** * Class CompojoomQueryHelper * * @since 4.0.31 */ class CompojoomQueryHelper { /** * Generates column IN ('a', 'b', '3') * * @param string $column - the column name * @param array $array - the array to implode and escape * @param object $db - the db object * @param bool $not - Use NOT IN instead of IN * * @return string */ public static function in($column, $array, $db, $not = false, $castInt = false) { $n = ($not) ? " NOT " : ""; return $db->qn($column) . $n . ' IN (' . self::implode($array, $db, 'q', $castInt) . ')'; } /** * Implode with value escaping * * @param array $values - array with values to implode * @param object $db - the db object * @param string $type - the type of escaping we should do quote or quoteName (q or qn) * * @return string */ public static function implode($values, $db, $type = 'q', $castInt = false) { return implode(',', array_map( function ($v) use ($db, $type, $castInt) { if ($castInt) { $v = (int) $v; } return $db->$type($v); }, $values ) ); } /** * Create proper array for Update query. The initial array has the form of array ('key' => 'value') * the new array has the form of array( 'key = value', ...) both key and value are properly escaped * * @param array $array - the array to format * @param object $db - the db object * * @return array */ public static function createProperArrayForUpdateQuery($array, $db) { $set = array(); foreach ($array as $key => $value) { $set[] = $db->qn($key) . '=' . $db->q($value); } return $set; } }