8768 sujets

Développement web côté serveur, CMS

Bonjour , je ne connais pas très bien Pdo , j'ai une erreur dans mon code :
Call to a member function fetch() on boolean

Voici mon code :
<?php

   
 $id='';

 if (empty($_GET['id'])) 
 {echo $id; }
 if (empty($id)) { header('locate: edition.php'); }
  
  try{
  $base = new PDO('mysql:host=localhost; projet_villes', 'root', '');
  }
  catch (exception $id)
  {die('Erreur '.$id->getmessage());}
  $base->exec("SET CHARACTER SET utf8");
 
  $retour = $base->query('SELECT ville_id, ville_nom, ville_texte FROM
  villes WHERE ville_id = ' . $id ); 

  
  while ($data= $retour->fetch()){
	  
  echo $data['ville_nom'].' '.$data['ville_texte'];}
  $base = null;
  
 
 
?>
Peut être qu'il faut j'utilise ceci comme exemple :
$var = true; // assigne la valeur TRUE à $var
echo $var; // affiche 1


Merci d'avance pour votre aide
Je n 'ai pas appris ça dans mon cours j'ai juste ça :

$var = true; // assigne la valeur TRUE à $var
if($var == true)
{
echo ‘vrai’;
}
else
{
echo ‘faux’;
}
Et ça ?


<?php
$id = '';

if (empty($_GET['id'])) {
    echo $id;
}

if (empty($id)) {
    header('locate: edition.php');
}

try {
   $conn = new PDO("mysql:host=localhost;projet_villes", 'root', 'root');
   $conn->exec("SET CHARACTER SET utf8");
   echo "Database Connected\n";
} catch(PDOException $e) {
   echo $e->getMessage();
}
$stmt = $conn->prepare('SELECT ville_id, ville_nom, ville_texte FROM villes WHERE ville_id = ' . $id);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  var_dump($row);
}
?>