| Line 70... |
Line 70... |
| 70 |
function __anonyme_3($cell) { return !is_null($cell); };
|
70 |
function __anonyme_3($cell) { return !is_null($cell); };
|
| 71 |
function __anonyme_5($item) { return is_null($item) ? '?' : $item; }
|
71 |
function __anonyme_5($item) { return is_null($item) ? '?' : $item; }
|
| 72 |
function __anonyme_6() { return NULL; }
|
72 |
function __anonyme_6() { return NULL; }
|
| Line 73... |
Line 73... |
| 73 |
|
73 |
|
| 74 |
class ImportXLS extends Cel {
|
74 |
class ImportXLS extends Cel {
|
| Line 75... |
Line 75... |
| 75 |
static function __anonyme_4(&$item, $key, $obj) { $item = $obj->quoteNonNull(trim($item)); }
|
75 |
static function __anonyme_4(&$item, $key) { $item = self::quoteNonNull(trim($item)); }
|
| 76 |
|
76 |
|
| 77 |
static $ordre_BDD = Array(
|
77 |
static $ordre_BDD = Array(
|
| 78 |
"ce_utilisateur",
|
78 |
"ce_utilisateur",
|
| Line 227... |
Line 227... |
| 227 |
$obs_ajouts = 0;
|
227 |
$obs_ajouts = 0;
|
| 228 |
$obs_maj = 0;
|
228 |
$obs_maj = 0;
|
| 229 |
$nb_images_ajoutees = 0;
|
229 |
$nb_images_ajoutees = 0;
|
| 230 |
$nb_mots_cle_ajoutes = 0;
|
230 |
$nb_mots_cle_ajoutes = 0;
|
| Line 231... |
Line 231... |
| 231 |
|
231 |
|
| 232 |
$dernier_ordre = $this->requeter("SELECT MAX(ordre) AS ordre FROM cel_obs WHERE ce_utilisateur = $id_utilisateur");
|
232 |
$dernier_ordre = Cel::db()->requeter("SELECT MAX(ordre) AS ordre FROM cel_obs WHERE ce_utilisateur = $id_utilisateur");
|
| 233 |
$dernier_ordre = intval($dernier_ordre[0]['ordre']) + 1;
|
233 |
$dernier_ordre = intval($dernier_ordre[0]['ordre']) + 1;
|
| Line 234... |
Line 234... |
| 234 |
if(! $dernier_ordre) $dernier_ordre = 0;
|
234 |
if(! $dernier_ordre) $dernier_ordre = 0;
|
| 235 |
|
235 |
|
| Line 268... |
Line 268... |
| 268 |
|
268 |
|
| 269 |
$sql_pattern = self::$insert_prefix .
|
269 |
$sql_pattern = self::$insert_prefix .
|
| 270 |
str_repeat(self::$insert_ligne_pattern . ', ', $nb_rec - 1) .
|
270 |
str_repeat(self::$insert_ligne_pattern . ', ', $nb_rec - 1) .
|
| Line 271... |
Line 271... |
| 271 |
self::$insert_ligne_pattern;
|
271 |
self::$insert_ligne_pattern;
|
| 272 |
|
272 |
|
| 273 |
$this->bdd->beginTransaction();
|
273 |
Cel::db()->beginTransaction();
|
| 274 |
$stmt = $this->bdd->prepare($sql_pattern);
|
274 |
$stmt = Cel::db()->prepare($sql_pattern);
|
| Line 275... |
Line 275... |
| 275 |
$donnees = array();
|
275 |
$donnees = array();
|
| Line 276... |
Line 276... |
| 276 |
foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e));
|
276 |
foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e));
|
| Line 277... |
Line 277... |
| 277 |
|
277 |
|
| 278 |
/* debug ici: echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;*/
|
278 |
/* debug ici: echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;*/
|
| 279 |
|
279 |
|
| Line 280... |
Line 280... |
| 280 |
$stmt->execute($donnees);
|
280 |
$stmt->execute($donnees);
|
| Line 281... |
Line 281... |
| 281 |
|
281 |
|
| 282 |
// $stmt->debugDumpParams(); // https://bugs.php.net/bug.php?id=52384
|
282 |
// $stmt->debugDumpParams(); // https://bugs.php.net/bug.php?id=52384
|
| 283 |
$dernier_autoinc = $this->bdd->lastInsertId();
|
283 |
$dernier_autoinc = Cel::db()->lastInsertId();
|
| 284 |
$this->bdd->commit();
|
284 |
Cel::db()->commit();
|
| 285 |
|
285 |
|
| 286 |
if(! $dernier_autoinc) trigger_error("l'insertion semble avoir échoué", E_USER_NOTICE);
|
286 |
if(! $dernier_autoinc) trigger_error("l'insertion semble avoir échoué", E_USER_NOTICE);
|
| Line 287... |
Line 287... |
| 287 |
|
287 |
|
| Line 288... |
Line 288... |
| 288 |
$obs_ajouts += count($enregistrements);
|
288 |
$obs_ajouts += count($enregistrements);
|
| Line 403... |
Line 403... |
| 403 |
//$req .= implode(', ', $enregistrement) . "\n";
|
403 |
//$req .= implode(', ', $enregistrement) . "\n";
|
| 404 |
}
|
404 |
}
|
| 405 |
}
|
405 |
}
|
| Line 406... |
Line 406... |
| 406 |
|
406 |
|
| 407 |
|
407 |
|
| 408 |
static function stockerMotsCle($cel, $enregistrements, $tous_mots_cle, $lastid) {
|
408 |
static function stockerMotsCle($enregistrements, $tous_mots_cle, $lastid) {
|
| 409 |
$c = 0;
|
409 |
$c = 0;
|
| 410 |
// debug: var_dump($tous_mots_cle);die;
|
410 |
// debug: var_dump($tous_mots_cle);die;
|
| 411 |
foreach($tous_mots_cle as $v) $c += count($v['mots_cle']['to_insert']);
|
411 |
foreach($tous_mots_cle as $v) $c += count($v['mots_cle']['to_insert']);
|
| Line 412... |
Line 412... |
| 412 |
return $c;
|
412 |
return $c;
|
| 413 |
}
|
413 |
}
|
| 414 |
|
414 |
|
| Line 415... |
Line 415... |
| 415 |
static function stockerImages($cel, $enregistrements, $toutes_images, $lastid) {
|
415 |
static function stockerImages($enregistrements, $toutes_images, $lastid) {
|
| 416 |
$images_insert = 'INSERT INTO cel_obs_images (id_image, id_observation) VALUES %s ON DUPLICATE KEY UPDATE id_image = id_image';
|
416 |
$images_insert = 'INSERT INTO cel_obs_images (id_image, id_observation) VALUES %s ON DUPLICATE KEY UPDATE id_image = id_image';
|
| Line 429... |
Line 429... |
| 429 |
}
|
429 |
}
|
| Line 430... |
Line 430... |
| 430 |
|
430 |
|
| 431 |
if($images_obs_assoc) {
|
431 |
if($images_obs_assoc) {
|
| 432 |
$requete = sprintf($images_insert, implode(', ', $images_obs_assoc));
|
432 |
$requete = sprintf($images_insert, implode(', ', $images_obs_assoc));
|
| 433 |
// debug echo "$requete\n";
|
433 |
// debug echo "$requete\n";
|
| 434 |
$cel->requeter($requete);
|
434 |
Cel::db()->requeter($requete);
|
| Line 435... |
Line 435... |
| 435 |
}
|
435 |
}
|
| 436 |
|
436 |
|
| Line 454... |
Line 454... |
| 454 |
C_NOM_RET_NN => NULL, C_NT => NULL, C_FAMILLE => NULL);
|
454 |
C_NOM_RET_NN => NULL, C_NT => NULL, C_FAMILLE => NULL);
|
| 455 |
self::traiterEspece($ligne, $espece, $referentiel, $cel);
|
455 |
self::traiterEspece($ligne, $espece, $referentiel, $cel);
|
| Line 456... |
Line 456... |
| 456 |
|
456 |
|
| 457 |
// $localisation est rempli à partir de plusieurs champs: C_ZONE_GEO et C_CE_ZONE_GEO
|
457 |
// $localisation est rempli à partir de plusieurs champs: C_ZONE_GEO et C_CE_ZONE_GEO
|
| 458 |
$localisation = Array(C_ZONE_GEO => NULL, C_CE_ZONE_GEO => NULL);
|
458 |
$localisation = Array(C_ZONE_GEO => NULL, C_CE_ZONE_GEO => NULL);
|
| Line 459... |
Line 459... |
| 459 |
self::traiterLocalisation($ligne, $localisation, $cel);
|
459 |
self::traiterLocalisation($ligne, $localisation);
|
| 460 |
|
460 |
|
| 461 |
// $transmission est utilisé pour date_transmission
|
461 |
// $transmission est utilisé pour date_transmission
|
| Line 508... |
Line 508... |
| 508 |
);
|
508 |
);
|
| Line 509... |
Line 509... |
| 509 |
|
509 |
|
| 510 |
// passage de $enregistrement par référence, ainsi ['_images'] n'est défini
|
510 |
// passage de $enregistrement par référence, ainsi ['_images'] n'est défini
|
| 511 |
// que si des résultats sont trouvés
|
511 |
// que si des résultats sont trouvés
|
| 512 |
// "@" car PHPExcel supprime les colonnes null sur toute la feuille (ou tout le chunk)
|
512 |
// "@" car PHPExcel supprime les colonnes null sur toute la feuille (ou tout le chunk)
|
| Line 513... |
Line 513... |
| 513 |
if(@$ligne[C_IMAGES]) self::traiterImage($ligne[C_IMAGES], $cel, $enregistrement);
|
513 |
if(@$ligne[C_IMAGES]) self::traiterImage($ligne[C_IMAGES], $cel->id_utilisateur, $enregistrement);
|
| Line 514... |
Line 514... |
| 514 |
|
514 |
|
| 515 |
if(@$ligne[C_MOTS_CLES_TEXTE]) self::traiterMotsCle($ligne[C_MOTS_CLES_TEXTE], $cel, $enregistrement);
|
515 |
if(@$ligne[C_MOTS_CLES_TEXTE]) self::traiterMotsCle($ligne[C_MOTS_CLES_TEXTE], $cel->id_utilisateur, $enregistrement);
|
| Line 516... |
Line 516... |
| 516 |
|
516 |
|
| 517 |
return $enregistrement;
|
517 |
return $enregistrement;
|
| Line 518... |
Line 518... |
| 518 |
}
|
518 |
}
|
| 519 |
|
519 |
|
| 520 |
static function traiterImage($str, $cel, &$enregistrement) {
|
520 |
static function traiterImage($str, $id_utilisateur, &$enregistrement) {
|
| 521 |
$liste_images = array_filter(explode("/", $str));
|
521 |
$liste_images = array_filter(explode("/", $str));
|
| 522 |
|
522 |
|
| 523 |
//array_walk($liste_images, '__anonyme_4', $cel);
|
523 |
//array_walk($liste_images, '__anonyme_4');
|
| Line 524... |
Line 524... |
| 524 |
array_walk($liste_images, array(__CLASS__, '__anonyme_4'), $cel);
|
524 |
array_walk($liste_images, array(__CLASS__, '__anonyme_4'));
|
| Line 525... |
Line 525... |
| 525 |
$requete = sprintf(
|
525 |
$requete = sprintf(
|
| 526 |
"SELECT id_image, nom_original FROM cel_images WHERE ce_utilisateur = %d AND nom_original IN (%s)",
|
526 |
"SELECT id_image, nom_original FROM cel_images WHERE ce_utilisateur = %d AND nom_original IN (%s)",
|
| Line 527... |
Line 527... |
| 527 |
$cel->id_utilisateur,
|
527 |
$id_utilisateur,
|
| 528 |
implode(',', $liste_images));
|
528 |
implode(',', $liste_images));
|
| 529 |
|
529 |
|
| Line 530... |
Line 530... |
| 530 |
$resultat = $cel->requeter($requete);
|
530 |
$resultat = Cel::db()->requeter($requete);
|
| 531 |
|
531 |
|
| 532 |
if($resultat) $enregistrement['_images'] = $resultat;
|
532 |
if($resultat) $enregistrement['_images'] = $resultat;
|
| 533 |
}
|
533 |
}
|
| 534 |
|
534 |
|
| 535 |
static function traiterMotsCle($str, $cel, &$enregistrement) {
|
535 |
static function traiterMotsCle($str, $id_utilisateur, &$enregistrement) {
|
| Line 536... |
Line 536... |
| 536 |
$liste_mots_cle = $liste_mots_cle_recherche = array_map("trim", array_unique(array_filter(explode(",", $str))));
|
536 |
$liste_mots_cle = $liste_mots_cle_recherche = array_map("trim", array_unique(array_filter(explode(",", $str))));
|
| 537 |
array_walk($liste_mots_cle_recherche, array(__CLASS__, '__anonyme_4'), $cel);
|
537 |
array_walk($liste_mots_cle_recherche, array(__CLASS__, '__anonyme_4'));
|
| Line 538... |
Line 538... |
| 538 |
|
538 |
|
| 539 |
// TODO!!!! remplace > (pour les tests uniquement) par un = et supprimer le group by mot_cle
|
539 |
// TODO!!!! remplace > (pour les tests uniquement) par un = et supprimer le group by mot_cle
|
| Line 713... |
Line 713... |
| 713 |
$espece[C_NT] = $complement['Num_Taxon'];
|
713 |
$espece[C_NT] = $complement['Num_Taxon'];
|
| 714 |
$espece[C_FAMILLE] = $complement['Famille'];
|
714 |
$espece[C_FAMILLE] = $complement['Famille'];
|
| 715 |
//var_dump("a", $espece);die;
|
715 |
//var_dump("a", $espece);die;
|
| 716 |
}
|
716 |
}
|
| Line 717... |
Line 717... |
| 717 |
|
717 |
|
| 718 |
static function detectFromNom($nom, $cel) {
|
718 |
static function detectFromNom($nom) {
|
| 719 |
$r = $cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".
|
719 |
$r = Cel::db()->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".
|
| 720 |
"ORDER BY nom_sci ASC LIMIT 0, 1",
|
720 |
"ORDER BY nom_sci ASC LIMIT 0, 1",
|
| 721 |
$cel->proteger($nom)));
|
721 |
Cel::db()->proteger($nom)));
|
| Line 722... |
Line 722... |
| 722 |
if($r) return $r;
|
722 |
if($r) return $r;
|
| 723 |
|
723 |
|
| 724 |
$cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s' OR nom LIKE '%s') ".
|
724 |
Cel::db()->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s' OR nom LIKE '%s') ".
|
| 725 |
"ORDER BY nom_sci ASC LIMIT 0, 1",
|
725 |
"ORDER BY nom_sci ASC LIMIT 0, 1",
|
| 726 |
$cel->proteger($nom),
|
726 |
Cel::db()->proteger($nom),
|
| 727 |
$cel->proteger(str_replace(' ', '% ', $nom))));
|
727 |
Cel::db()->proteger(str_replace(' ', '% ', $nom))));
|
| Line 728... |
Line 728... |
| 728 |
return $r;
|
728 |
return $r;
|
| 729 |
}
|
729 |
}
|
| 730 |
|
730 |
|
| 731 |
|
731 |
|
| 732 |
static function traiterLocalisation($ligne, Array &$localisation, $cel) {
|
732 |
static function traiterLocalisation($ligne, Array &$localisation) {
|
| 733 |
$identifiant_commune = trim($ligne[C_ZONE_GEO]);
|
733 |
$identifiant_commune = trim($ligne[C_ZONE_GEO]);
|
| Line 761... |
Line 761... |
| 761 |
if (preg_match('/(.+) \((\d+)\)/', $identifiant_commune, $elements)) {
|
761 |
if (preg_match('/(.+) \((\d+)\)/', $identifiant_commune, $elements)) {
|
| 762 |
// commune + departement : montpellier (34)
|
762 |
// commune + departement : montpellier (34)
|
| 763 |
$nom_commune=$elements[1];
|
763 |
$nom_commune=$elements[1];
|
| 764 |
$code_commune=$elements[2];
|
764 |
$code_commune=$elements[2];
|
| 765 |
$requete = sprintf("%s WHERE nom = %s AND code LIKE %s",
|
765 |
$requete = sprintf("%s WHERE nom = %s AND code LIKE %s",
|
| 766 |
$select, $cel->quoteNonNull($nom_commune), $cel->quoteNonNull($code_commune.'%'));
|
766 |
$select, self::quoteNonNull($nom_commune), self::quoteNonNull($code_commune.'%'));
|
| 767 |
}
|
767 |
}
|
| 768 |
elseif (preg_match('/^(\d+|(2[ab]\d+))$/i', $identifiant_commune, $elements)) {
|
768 |
elseif (preg_match('/^(\d+|(2[ab]\d+))$/i', $identifiant_commune, $elements)) {
|
| 769 |
// Code insee seul
|
769 |
// Code insee seul
|
| 770 |
$code_insee_commune=$elements[1];
|
770 |
$code_insee_commune=$elements[1];
|
| 771 |
$requete = sprintf("%s WHERE code = %s", $select, $cel->quoteNonNull($code_insee_commune));
|
771 |
$requete = sprintf("%s WHERE code = %s", $select, self::quoteNonNull($code_insee_commune));
|
| 772 |
}
|
772 |
}
|
| 773 |
else {
|
773 |
else {
|
| 774 |
// Commune seule (le departement sera recupere dans la colonne departement si elle est presente)
|
774 |
// Commune seule (le departement sera recupere dans la colonne departement si elle est presente)
|
| 775 |
// on prend le risque ici de retourner une mauvaise Commune
|
775 |
// on prend le risque ici de retourner une mauvaise Commune
|
| 776 |
$nom_commune = str_replace(" ", "%", iconv('UTF-8', 'ASCII//TRANSLIT', $identifiant_commune));
|
776 |
$nom_commune = str_replace(" ", "%", iconv('UTF-8', 'ASCII//TRANSLIT', $identifiant_commune));
|
| 777 |
$requete = sprintf("%s WHERE nom LIKE %s", $select, $cel->quoteNonNull($nom_commune.'%'));
|
777 |
$requete = sprintf("%s WHERE nom LIKE %s", $select, self::quoteNonNull($nom_commune.'%'));
|
| 778 |
}
|
778 |
}
|
| Line 779... |
Line 779... |
| 779 |
|
779 |
|
| 780 |
$resultat_commune = $cel->requeter($requete);
|
780 |
$resultat_commune = Cel::db()->requeter($requete);
|
| Line 781... |
Line 781... |
| 781 |
// TODO: levenstein sort ?
|
781 |
// TODO: levenstein sort ?
|
| 782 |
|
782 |
|
| 783 |
// cas de la commune introuvable dans le référentiel
|
783 |
// cas de la commune introuvable dans le référentiel
|
| Line 812... |
Line 812... |
| 812 |
$localisation[C_ZONE_GEO] = $localisation[C_ZONE_GEO];
|
812 |
$localisation[C_ZONE_GEO] = $localisation[C_ZONE_GEO];
|
| 813 |
$localisation[C_CE_ZONE_GEO] = $localisation[C_CE_ZONE_GEO];
|
813 |
$localisation[C_CE_ZONE_GEO] = $localisation[C_CE_ZONE_GEO];
|
| 814 |
}
|
814 |
}
|
| Line 815... |
Line 815... |
| 815 |
|
815 |
|
| 816 |
/*
|
816 |
/*
|
| 817 |
static function traiterLocalisation($ligne, Array &$localisation, $cel) {
|
817 |
static function traiterLocalisation($ligne, Array &$localisation) {
|
| 818 |
$identifiant_commune = trim($ligne[C_ZONE_GEO]);
|
818 |
$identifiant_commune = trim($ligne[C_ZONE_GEO]);
|
| 819 |
if(!$identifiant_commune) {
|
819 |
if(!$identifiant_commune) {
|
| 820 |
$departement = trim($ligne[C_CE_ZONE_GEO]);
|
820 |
$departement = trim($ligne[C_CE_ZONE_GEO]);
|
| 821 |
goto testdepartement;
|
821 |
goto testdepartement;
|
| Line 827... |
Line 827... |
| 827 |
if (preg_match('/(.*) \((\d+)\)/', $identifiant_commune, $elements)) {
|
827 |
if (preg_match('/(.*) \((\d+)\)/', $identifiant_commune, $elements)) {
|
| 828 |
// commune + departement : montpellier (34)
|
828 |
// commune + departement : montpellier (34)
|
| 829 |
$nom_commune=$elements[1];
|
829 |
$nom_commune=$elements[1];
|
| 830 |
$code_commune=$elements[2];
|
830 |
$code_commune=$elements[2];
|
| 831 |
$requete = sprintf("%s WHERE nom = %s AND code LIKE %s",
|
831 |
$requete = sprintf("%s WHERE nom = %s AND code LIKE %s",
|
| 832 |
$select, $cel->quoteNonNull($nom_commune), $cel->quoteNonNull($code_commune.'%'));
|
832 |
$select, self::quoteNonNull($nom_commune), self::quoteNonNull($code_commune.'%'));
|
| 833 |
}
|
833 |
}
|
| 834 |
elseif (preg_match('/^(\d+|(2[ab]\d+))$/i', $identifiant_commune, $elements)) {
|
834 |
elseif (preg_match('/^(\d+|(2[ab]\d+))$/i', $identifiant_commune, $elements)) {
|
| 835 |
// Code insee seul
|
835 |
// Code insee seul
|
| 836 |
$code_insee_commune=$elements[1];
|
836 |
$code_insee_commune=$elements[1];
|
| 837 |
$requete = sprintf("%s WHERE code = %s", $select, $cel->quoteNonNull($code_insee_commune));
|
837 |
$requete = sprintf("%s WHERE code = %s", $select, self::quoteNonNull($code_insee_commune));
|
| 838 |
}
|
838 |
}
|
| 839 |
else {
|
839 |
else {
|
| 840 |
// Commune seule (le departement sera recupere dans la colonne departement si elle est presente)
|
840 |
// Commune seule (le departement sera recupere dans la colonne departement si elle est presente)
|
| 841 |
// on prend le risque ici de retourner une mauvaise Commune
|
841 |
// on prend le risque ici de retourner une mauvaise Commune
|
| 842 |
$nom_commune = str_replace(" ", "%", iconv('UTF-8', 'ASCII//TRANSLIT', $identifiant_commune));
|
842 |
$nom_commune = str_replace(" ", "%", iconv('UTF-8', 'ASCII//TRANSLIT', $identifiant_commune));
|
| 843 |
$requete = sprintf("%s WHERE nom LIKE %s", $select, $cel->quoteNonNull($nom_commune.'%'));
|
843 |
$requete = sprintf("%s WHERE nom LIKE %s", $select, self::quoteNonNull($nom_commune.'%'));
|
| 844 |
}
|
844 |
}
|
| Line 845... |
Line 845... |
| 845 |
|
845 |
|
| 846 |
$resultat_commune = $cel->requeter($requete);
|
846 |
$resultat_commune = Cel::db()->requeter($requete);
|
| Line 847... |
Line 847... |
| 847 |
// TODO: levenstein sort ?
|
847 |
// TODO: levenstein sort ?
|
| 848 |
|
848 |
|
| 849 |
// cas de la commune introuvable dans le référentiel
|
849 |
// cas de la commune introuvable dans le référentiel
|
| Line 904... |
Line 904... |
| 904 |
// et doivent donc être échappées correctement.
|
904 |
// et doivent donc être échappées correctement.
|
| 905 |
public function initialiser_colonnes_statiques() {
|
905 |
public function initialiser_colonnes_statiques() {
|
| 906 |
$this->colonnes_statiques = array_merge($this->colonnes_statiques,
|
906 |
$this->colonnes_statiques = array_merge($this->colonnes_statiques,
|
| 907 |
Array(
|
907 |
Array(
|
| 908 |
"ce_utilisateur" => $this->id_utilisateur,
|
908 |
"ce_utilisateur" => $this->id_utilisateur,
|
| 909 |
"prenom_utilisateur" => $this->quoteNonNull($this->utilisateur['prenom']),
|
909 |
"prenom_utilisateur" => self::quoteNonNull($this->utilisateur['prenom']),
|
| 910 |
"nom_utilisateur" => $this->quoteNonNull($this->utilisateur['nom']),
|
910 |
"nom_utilisateur" => self::quoteNonNull($this->utilisateur['nom']),
|
| 911 |
"courriel_utilisateur" => $this->quoteNonNull($this->utilisateur['courriel']),
|
911 |
"courriel_utilisateur" => self::quoteNonNull($this->utilisateur['courriel']),
|
| 912 |
));
|
912 |
));
|
| Line 913... |
Line 913... |
| 913 |
|
913 |
|
| Line 914... |
Line 914... |
| 914 |
}
|
914 |
}
|
| Line 947... |
Line 947... |
| 947 |
)))) .
|
947 |
)))) .
|
| 948 |
')'
|
948 |
')'
|
| 949 |
);
|
949 |
);
|
| 950 |
}
|
950 |
}
|
| Line 951... |
Line 951... |
| 951 |
|
951 |
|
| 952 |
// équivalent à CEL->Bdd->proteger() (qui wrap PDO::quote),
|
952 |
// équivalent à Bdd2->proteger() (qui wrap PDO::quote),
|
| 953 |
// sans transformer NULL en ""
|
953 |
// sans transformer NULL en ""
|
| 954 |
private function quoteNonNull($chaine) {
|
954 |
static function quoteNonNull($chaine) {
|
| 955 |
if(is_null($chaine)) return "NULL";
|
955 |
if(is_null($chaine)) return "NULL";
|
| 956 |
if(!is_string($chaine)) die("erreur __FILE__, __LINE__");
|
956 |
if(!is_string($chaine)) die("erreur __FILE__, __LINE__");
|
| 957 |
return $this->bdd->quote($chaine);
|
957 |
return Cel::db()->quote($chaine);
|
| Line 958... |
Line 958... |
| 958 |
}
|
958 |
}
|
| 959 |
|
959 |
|
| 960 |
public function erreurs_stock($errno, $errstr) {
|
960 |
public function erreurs_stock($errno, $errstr) {
|