예제 #1
0
/**
 * Échapper une valeur selon son type
 * mais pour SQLite avec ses spécificités
 *
 * @param string|array|number $v
 *     Texte, nombre ou tableau à échapper
 * @param string $type
 *     Description du type attendu
 *    (par exemple description SQL de la colonne recevant la donnée)
 * @return string|number
 *    Donnée prête à être utilisée par le gestionnaire SQL
 */
function spip_sqlite_quote($v, $type = '')
{
    if (!is_array($v)) {
        return _sqlite_calculer_cite($v, $type);
    }
    // si c'est un tableau, le parcourir en propageant le type
    foreach ($v as $k => $r) {
        $v[$k] = spip_sqlite_quote($r, $type);
    }
    return join(",", $v);
}
예제 #2
0
function _sqlite_calculer_cite($v, $type) {
	if (sql_test_date($type) AND preg_match('/^\w+\(/', $v))
		return $v;
	if (sql_test_int($type)) {
		if (is_numeric($v))
			return $v;
		if (ctype_xdigit(substr($v,2)) AND strncmp($v,'0x',2)==0)
			return hexdec(substr($v,2));
	}
	//else return  ("'" . spip_sqlite_quote($v) . "'");
	return  (spip_sqlite_quote($v));
}