Bonjour,
suis bloqué sur ce bout de code qui me permet de faire update de ma table avec la methode POST.
...
<?php
$conditioni=$_POST["conditioni"];
$nbrect=$_POST["nbrect"];
if(isset($_POST["modifier"])) {
$requete=$bdd->prepare('UPDATE ipms SET condition_ipms=:conditioni,nb_rect=:$nbrect');
$requete->execute(arry('conditioni' =>$ conditioni,'nbrect' => $nbrect));
$resultat= $bdd->query($requete);
if($resultat){
echo "erreur dans l execution de la requete";
echo "le message d erreur est : ".mysql_error($bdd);
}
}
?>
...
je recois le message suivant :
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\wamp\www\allandik\pm1.php on line 63.

Merci pour votre aide et bonne journée.

7 réponses


normal, tu ecrit arry et non pas array :)

$requete->execute(arry('conditioni' =>$ conditioni,'nbrect' => $nbrect));

après je suis pas specialiste de PDO, mais il me semble que tu va avoir une autre erreur

nb_rect=:$nbrect
=> s'ecrit plutot
nb_rect=:nbrect

ahmat
Auteur

oui c est ca.j ai eu encore une autre erreur

ahmat
Auteur

$req=$bdd->prepare('UPDATE ipms SET condition_imps= :conditioni,nb_rect= :nbrect');
$req->execute(array('condition_imps'=>$conditioni,'nb_rect'=>$nbrect));

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\wamp\www\allandik\recup.php on line 21
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\allandik\recup.php on line 21

besoin encore d aide.

$req->execute(array('condition_imps'=>$conditioni,'nb_rect'=>$nbrect));

=>

$req->execute(array(':condition_imps'=>$conditioni,':nb_rect'=>$nbrect));

va falloir apprendre à lire une Doc et lire les exemples. http://php.net/manual/fr/pdo.prepare.php

ahmat
Auteur

Bonjour merci pour le conseil,
j avais lu toute la nuit et je commence à comprendre le mecanisme, le UPDATE fonctionne:
<?php
$idp=$_GET["id_site"];
$conditioni=$_POST["conditioni"];
$nbrect=$_POST["nbrect"];

if(isset($_POST["modifier"])){

$req=$bdd->prepare("UPDATE ipms SET condition_imps=:conditioni,nb_rect=:nbrect where id=:idp ");
$req->bindParam(":conditioni",$conditioni);
$req->bindParam(":nbrect",$nbrect);
$req->bindParam(":idp",$idp);
$req->execute();
if($req){
echo "Update reussie";
}
else {
echo "update echouée";
}
}
?>

Mon code marche si j'ote le "where id=:idp " mais il fait l update de tous mon table.
Un souci avec l'id que je recois avec la methode GET.C est un peu confu, GET et POST en meme tant ???

ahmat
Auteur

C est deja bon Merci.