Requête erronée ?
FlyAwayExpert7
Messages postés
82
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Cela fait quelques heures que je cherche cette (sûrement) bête erreur:
Dans le même fichier j'ai 2 requêtes SQL:
Et juste après j'en ai une deuxième qui fonctionne:
PS: Toutes mes variables sont définies et fonctionnent.
Que faire?
D'avance merci.
Cordialement,
FlyAwayExpert7
-----------------------------------------------
Conception web · Développement web · Design graphique par passion.
Cela fait quelques heures que je cherche cette (sûrement) bête erreur:
Dans le même fichier j'ai 2 requêtes SQL:
$connexion = new PDO(sprintf('mysql:host=%s;dbname=%s', $serveur, $base), $user, $mdp);
$insertadd_on = $connexion->prepare('INSERT INTO '.$prefixe.'plugins SET nom=:nom, desc=:desc, version=:version, etat=:etat, rep=:rep, index=:index') or die(print_r($connexion->errorInfo(), true));
$insertadd_on->execute(array(
'nom' => $zip_name,
'desc' => $manifest_fgc['manifest']['content_description'],
'version' => $manifest_fgc['manifest']['content_version'],
'etat' => "1",
'rep' => $manifest_fgc['manifest']['content_name'],
'index' => $manifest_fgc['manifest']['fr_content_file_index_name']
));
Et juste après j'en ai une deuxième qui fonctionne:
$connexion2 = new PDO(sprintf('mysql:host=%s;dbname=%s', $serveur, $base), $user, $mdp);
$insertadd_on_tab = $connexion2->prepare('INSERT INTO '.$prefixe.'tab SET nom=:nom, target=:target') or die(print_r($connexion2->errorInfo(), true));
$insertadd_on_tab->execute(array(
'nom' => $manifest_fgc['manifest']['content_name'],
'target' => './Add-ons/'.$manifest_fgc['manifest']['content_name']
));
PS: Toutes mes variables sont définies et fonctionnent.
Que faire?
D'avance merci.
Cordialement,
FlyAwayExpert7
-----------------------------------------------
Conception web · Développement web · Design graphique par passion.
2 réponses
-
-
Bonjour,
Desc est un mot clé réservé par Mysql ( c'est celui qui sert à définir dans quel ordre tu TRI le résultat de tes requêtes SELECT .... combiné à ORDER BY. )
Donc ... change le nom de tom champ en "description" afin d'"éviter les soucis.
NB : En PDO .. on n'utilise pas le OR DIE( .... ) ... mais des blocs TRY / CACTH pour gérer les erreurs.
Nb2 : Il est également préférable de séparer la requête de son exécution... ainsi ... tu peux en faire un ECHO en cas de besoin.
=> Idem avec les variables dans l'execute.
try{ $sql = "INSERT INTO ".$prefixe."plugins SET nom=:nom , description=:desc , version=:version , etat=:etat , rep=:rep , index=:index"; $params = array( ':nom' => $zip_name, ':desc' => $manifest_fgc['manifest']['content_description'], ':version' => $manifest_fgc['manifest']['content_version'], ':etat' => "1", ':rep' => $manifest_fgc['manifest']['content_name'], ':index' => $manifest_fgc['manifest']['fr_content_file_index_name'] ); $insertadd_on = $connexion->prepare($sql); $insertadd_on->execute($params); }catch(Exception $e) { // En cas d'erreur dans la requête echo "<pre><br>".$e->getMessage()."<br>"; echo "<br> Requete : ".$sql; echo "<br> Params : <br>"; print_r($params); echo "</pre>"; }
Cordialement,
Jordane