[RESOLU] update variable ko

Eléphant du PHP | 345 Messages

28 févr. 2021, 01:10

bonjour,
Je n'arrive pas à récupérer une variable en table. ...

Code : Tout sélectionner

?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); // connexion a la bdd require_once 'config.php'; /* Initialisation de la variable du message de réponse*/ $err_inscription= null; $avatar= "/avatars/0001.png"; //$id= 'session_id'; $pdostat = $bdd->prepare("UPDATE membres SET avatar = :avatar WHERE pseudo = :pseudo"); $pdostat->execute(array( 'avatar' => $avatar)); if ($row = $pdostat->fetch(PDO::FETCH_ASSOC)) { $_SESSION['avatar'] == $row['avatar']; header('page_test.html'); exit; } else { $err_inscription[] = 'PROBLEME AVEC AVATAR'; } ?>
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp64\www\register_av0001.php on line 14

Mammouth du PHP | 2703 Messages

28 févr. 2021, 12:12

soit le même message d'erreur que dans l'autre discussion
comment le problème a-t-il été réglé ?

Eléphant du PHP | 345 Messages

01 mars 2021, 12:27

Code : Tout sélectionner

<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); //if( session_id()=='' ){ session_start(); } //if (isset($_SESSION['id']) AND isset($_SESSION['pseudo'])) //{ session_start(); // connexion a la bdd require_once 'config.php'; /* Initialisation de la variable du message de réponse*/ $err_inscription= null; $avatar= "/avatars/0001.png"; $pdostat = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id'); $pdostat->bindValue(':avatar', $avatar, PDO::PARAM_STR); $pdostat->bindValue(':id', $id, PDO::PARAM_STR); $pdostat->execute(array( 'avatar' => $avatar, 'id' => $id)); $_SESSION['avatar'] = $avatar; header('page_test.html'); exit; ?>
Undefined variable: id in C:\wamp64\www\register_av0001.php on line 16

Avatar du membre
Mammouth du PHP | 1564 Messages

01 mars 2021, 12:34

la colonne "avatar" à mon avis qui est de type "entier" dans la BDD

Eléphant du PHP | 345 Messages

02 mars 2021, 09:34

Non, c'est VARCHAR que j'ai en BDD. j'y mets le chemin d'accès au répertoire.

Eléphant du PHP | 345 Messages

02 mars 2021, 10:40

Le script fonctionne avec cela. En fait, j'avais aussi un problème de déclaration de cession sur la page précédente !!!
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();
require_once 'config.php';
/* Initialisation de la variable avatar*/

$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
if($id){
$avatar= '/avatars/0001.png';
    $pdostat = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
    $pdostat->bindValue(':avatar', $avatar, PDO::PARAM_STR);
    $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
    $pdostat->execute();
    $_SESSION['id'] = $bdd->lastInsertId();
				}		
 	header('Location:page_test.html');
        exit;
?>