Bonsoir à toutes et à tous,
Je suis un néophyte complet pour MySql, j'ai lu sur les tutoriels qu'il valait mieux utiliser pdo et les requêtes préparées. Mais c'est bien au delà de mes capacités.
J'ai glané de-ci de-là de quoi écrire ma requête ci-dessous mais c'est visiblement insuffisant. J'ai collé en dessous les messages d'erreur que je reçois lorsque je tente le $_post.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 //dans le <head></head> <?php function SauveCompet($Nom___PJ, $PrenomPJ, $PtCmpOcT, $PtCmpOcD, $Cpt_Conn, $Cpt_SvFr, $Cpt_Sens, $Cpt_Infl, $Cpt_Actn, $DateMmaJ) { $serveur = "127.0.0.1"; // Le serveur $nom_base = "adc"; // La Base de données $login = "MonLog"; // le login "" $pwd = "MonPsWrd"; // Le mot de passe "" $charset = "utf8"; // Le charset "utf8" //-------------------------------------------------------------------------------------------------------------------------------------------------------------------- // MA sauvegarde dans la base 'adc' table 'pj_pnj' champs compétences : `PtCmpOcT`, `PtCmpOcD`, `Cpt_Conn`, `Cpt_SvFr`, `Cpt_Sens`, `Cpt_Infl`, `Cpt_Actn`, `DateMmaJ` //-------------------------------------------------------------------------------------------------------------------------------------------------------------------- // connexion à MySQL en utilisant PDO try // PHP essaie d'exécuter les instructions à l'intérieur du bloc try. S'il y a une erreur, il rentre dans le bloc catch et fait ce qu'on lui demande (ici, on arrête l'exécution de la page en affichant un message décrivant l'erreur). { $bdd = new PDO('mysql:host='.$serveur.';dbname='.$nom_base.';charset='.$charset, $login, $pwd); } catch (Exception $e) // S'il y a une erreur, il rentre dans le bloc catch et fait ce qu'on lui demande (ici, on arrête l'exécution de la page en affichant un message décrivant l'erreur). { die('Erreur : ' . $e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout } // Si tout va bien, on peut continuer // On modifie une entrée dans la table pj_pnj // Utilisation d'une requète préparée $req = $bdd->prepare('UPDATE pj_pnj SET PtCmpOcT = :PtCmpOcT, PtCmpOcD = :PtCmpOcD, Cpt_Conn = :Cpt_Conn, Cpt_SvFr = :Cpt_SvFr, Cpt_Sens = :Cpt_Sens, Cpt_Infl = :Cpt_Infl, Cpt_Actn = :Cpt_Actn, DateMmaJ = :DateMmaJ WHERE Nom___PJ = :Nom___PJ AND PrenomPJ = :PrenomPJ'); $req->execute(Array( ':PtCmpOcT' => $PtCmpOcT, ':PtCmpOcD' => $PtCmpOcD, ':Cpt_Conn' => $Cpt_Conn, ':Cpt_SvFr' => $Cpt_SvFr, ':Cpt_Sens' => $Cpt_Sens, ':Cpt_Infl' => $Cpt_Infl, ':Cpt_Actn' => $Cpt_Actn, ':DateMmaJ' => $DateMmaJ )); } ?>Les messages d'erreur
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 //dans le <body></body> <?php $Nom___PJ = $_POST['NomDuPj']; $PrenomPJ = $_POST['PrenomDuPj']; $DateMmaJ = $_POST['DateDeMaJ']; $PtCmpOcT = $_POST['PtCptOcT']; $PtCmpOcD = $_POST['PtCpOcDp']; $Cpt_Conn = str_replace("\n", "|", $_POST['CCnnChx']); $Cpt_SvFr = str_replace("\n", "|", $_POST['CSvFChx']); $Cpt_Sens = str_replace("\n", "|", $_POST['CSnsChx']); $Cpt_Infl = str_replace("\n", "|", $_POST['CInfChx']); $Cpt_Actn = str_replace("\n", "|", $_POST['CActChx']); SauveCompet($Nom___PJ, $PrenomPJ, $PtCmpOcT, $PtCmpOcD, $Cpt_Conn, $Cpt_SvFr, $Cpt_Sens, $Cpt_Infl, $Cpt_Actn, $DateMmaJ); ?>
Notice: Undefined index: NomDuPj in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 92
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0( ! ) Notice: Undefined index: PrenomDuPj in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 93
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0( ! ) Notice: Undefined index: DateDeMaJ in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 94
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0( ! ) Notice: Undefined index: PtCptOcT in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 95
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0( ! ) Notice: Undefined index: PtCpOcDp in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 96
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0Je ne maitrise pas bien la langue de "j'expire"!( ! ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in D:\wamp\www\Cthulhu\_MIcptPJtt.php on line 53
Call Stack
# Time Memory Function Location
1 0.0004 160304 {main}( ) ..\_MIcptPJtt.php:0
2 0.0667 162000 SauveCompet( ) ..\_MIcptPJtt.php:102
3 0.0674 170296 execute ( ) ..\_MIcptPJtt.php:53
Mais je crois que çà dit que le nombre de paramètres ne correspond pas avec ...
des index indéfinis...
Voici la copie des champs de la table, je ne crois pas m'être trompé dans mes 'copier/coller' pour écrire la requête.
Merci d'avance à celles/ceux qui voudront bien éclairer ma lanterne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 -- -- Contenu de la table `pj_pnj` -- INSERT INTO `pj_pnj` (`id_PjPnj`, `Nom___PJ`, `PrenomPJ`, `DatNaiss`, `SEXE_M_F`, `Nationlt`, `APParenc`, `CONstit_`, `DEXterit`, `FORce___`, `TAIlle__`, `EDUcatio`, `INTellig`, `POUvoir_`, `Prestanc`, `Enduranc`, `Agilite_`, `Puissanc`, `Corpulen`, `Connaiss`, `Intuitio`, `Volonte_`, `PtCmpOcT`, `PtCmpOcD`, `PtCmpPtT`, `PtCmpPtD`, `Aplomb__`, `SANteMen`, `PointVie`, `Blessure`, `PointMag`, `Impact__`, `Occupat1`, `Occupat2`, `Professn`, `Personna`, `NiveauVi`, `Cpt_Conn`, `Cpt_SvFr`, `Cpt_Sens`, `Cpt_Infl`, `Cpt_Actn`, `DateMmaJ`) VALUES
Partager