Updater une table ??

Par ahmat, il y a 10 ans


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

keulu, il y a 10 ans

normal, tu ecrit arry et non pas array :)

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

keulu, il y a 10 ans

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, il y a 10 ans

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

ahmat, il y a 10 ans

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.

keulu, il y a 10 ans

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, il y a 10 ans

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, il y a 10 ans

C est deja bon Merci.