Bonjour à tous,

Je ne comprend pas j'ai une méthode, qui me sert pour les 'INSERT, UPDATE et DELETE' et qui fonctionne correctement jusqu’à maintenant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
	public function dbExec($req,$condition) {
		try {
			$bdd = new PDO('mysql:host='.$this->dbhost.';dbname='.$this->db, $this->dbuser, $this->dbpass);
			$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		} catch(Exception $log) {
			echo 'Erreur: '.$log->getMessage().'<br />';
			echo 'Code: '.$log->getCode();
		}
		if (empty($log)) {
			$requete = $bdd->prepare($req);
			if (!is_array($condition)) {
				$condition = array();
			}
			try {
				$do = $requete->execute($condition);
			} catch(Exception $log) {
				echo 'Erreur: '.$log->getMessage().'<br />';
				echo 'Code: '.$log->getCode();
			}		
			// Si on trouve une reponse			
			if ($do != false) {
				return true;
			} else {
				return false;
			}
		}
	}
Cette méthode fonctionne correctement pour faire des 'UPDATE' mais avec le code suivant le try/catch ne me renvoi aucune erreur et la méthode me renvoi TRUE alors que rien n'est modifié dans la BDD... C'est étrange! Voici le code en question:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
	// Mettre à jour une note
	if ($_POST['updateNote']) {
		if ( ($_POST['id'] != '') && ($_POST['noteTitre'] != '') && ($_POST['noteContent'] != '') && ($_POST['noteKeywords'] != '') ) {
			// Recuperer le timestamp
			$time = time();
			if (!$Core->dbExec('UPDATE `notes` SET `titre`=?, `note`=?, `keywords`=?, `ts_lastmodif`=? WHERE `id_creator`=? AND `id`=?', array($_POST['noteTitle'], $_POST['noteContent'], $_POST['noteMetaKeywords'], $_SESSION['userid'], $time, $_POST['id'])) ) {
				$txt = '<p>Erreur lors de l\'enregistrement des modifications...</p>';
				$Core->newErrorMessage($txt);
			} else {
				$txt = '<p>Les modifications sont correctement enregistrés!</p>';
				$Core->newMessage($txt);
			}					
		} else {
			$txt = '<p>Erreur: Impossible de d\'enregistrer les modifications...</p>';
			$Core->newErrorMessage($txt);				
		}	
	}
Je ne comprend pas pourtant quand je teste coté serveurs les données que j'enregistre sont bien différentes de celles présentes dans ma DB (ne serai-ce que le timestamp) et pourtant rien ne change dans ma DB....

J'en perd mon latin et je suis fatigué alors ça n'arrange rien, si quelqu'un peut me filer un coup de main, il est le bienvenu!

Merci

Nico