/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2011 *
+ * Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
function _sqlite_modifier_table($table, $colonne, $opt=array(), $serveur=''){
if (is_array($table)) {
- $table_origine = array_shift(array_keys($table));
- $table_destination = array_shift($table);
+ reset($table);
+ list($table_origine,$table_destination) = each($table);
} else {
$table_origine = $table_destination = $table;
}
// ne prend actuellement qu'un changement
// mais pourra etre adapte pour changer plus qu'une colonne a la fois
if (is_array($colonne)) {
- $colonne_origine = array_shift(array_keys($colonne));
- $colonne_destination = array_shift($colonne);
+ reset($colonne);
+ list($colonne_origine,$colonne_destination) = each($colonne);
} else {
$colonne_origine = $colonne_destination = $colonne;
}
// Pour les corrections a effectuer sur les requetes :
var $textes = array(); // array(code=>'texte') trouvé
- var $codeEchappements = "%@##@%";
// constructeur
// enleve les textes, transforme la requete pour quelle soit
// bien interpretee par sqlite, puis remet les textes
// la fonction affecte $this->query
-// http://doc.spip.org/@traduire_requete
+ // http://doc.spip.org/@traduire_requete
function traduire_requete(){
//
// 1) Protection des textes en les remplacant par des codes
//
- // enlever les echappements ''
- $this->query = str_replace("''", $this->codeEchappements, $this->query);
- // enlever les 'textes'
- $this->textes = array(); // vider
- $this->query = preg_replace_callback("/('[^']*')/", array(&$this, '_remplacerTexteParCode'), $this->query);
+ // enlever les 'textes' et initialiser avec
+ list($this->query, $textes) = query_echappe_textes($this->query);
//
// 2) Corrections de la requete
//
// 3) Remise en place des textes d'origine
//
- // remettre les 'textes'
- foreach ($this->textes as $cle=>$val){
- $this->query = str_replace($cle, $val, $this->query);
- }
- // remettre les echappements ''
- $this->query = str_replace($this->codeEchappements,"''",$this->query);
+ // Correction Antiquotes et echappements
+ // ` => rien
+ if (strpos($this->query,'`')!==false)
+ $this->query = str_replace('`','', $this->query);
+
+ $this->query = query_reinjecte_textes($this->query, $textes);
}