8721 sujets

Développement web côté serveur, CMS

Bonjour.
j'ai crée dans mon code php une requête sql :
SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 5

qui ne fonctionne pas dans mon script c'est à dire qu'elle ne renvoie pas d'erreurs mais elle renvoie false après avoir fait un fetch() à ma requête , j'ai donc pensé que ma requête ne trouve pas les éléments demandée dans ma bdd j'ai donc exécuter ma requête dans ma bdd et la tous fonctionne il sélectionne bien mais éléments , ma deuxième hypothèse était que l'encodage gêner l’exécution de la requête dans mon script j'ai donc vérifier l'encodage de ma page mais tout aller bien , j'ai changer l'interclassement de ma table mais rien a changer , et enfin j'ai convertit directement dans mon script en utf8 mais la rien a changé encore.
je ne sais vraiment plus quoi faire pour que cela fonctionne.
yiujia a écrit :
Donnes nous le code php que tu exécutes pour faire ta requête.


$articleTime = $bdd->prepare('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 5');
		$articleTime->execute(array());
		
		while($c > $articleTime->fetch()){
			$titre = mb_convert_encoding($c['titre'], "UTF-8", "Windows-1252");
			$categories = mb_convert_encoding($c['categories'], "UTF-8", "Windows-1252");
			$sous_categorie = mb_convert_encoding($c['sous_categorie'], "UTF-8", "Windows-1252");
			$description = mb_convert_encoding($c['description'], "UTF-8", "Windows-1252");
			echo '<h2>'.$titre.'</h2>
			      <img src=photo_article/'.$titre.'.miniature.jpg/>
				  <h3>Nouvelle article !!!</h3>
				  <p>l\'article porte sur le thème '.$categories.' et sur le sous theme'.$sous_categorie.'</p>
				  <p>description :</p>
				  <p>'.$description.'</p>';
		}

voilà.
ah oui effectivement.
Mais le problème ne change pas la requête renvoie false et n'affiche rien même si je change le > en =
Affiches les erreurs

$articleTime = $bdd->prepare('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 5');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (!$articleTime->execute()) {
    print_r($articleTime->errorInfo());
}
PHP me renvoie cette erreur :
Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. in C:\wamp\www\Delta_tech\class\article_choice.php on line 7
d'après ce que j'ai compris une autre requête est entrain de se faire mais il n'y en a qu'une dans mon script à part si l'erreur veut dire autre chose
Sinon essaies de remplacer

$articleTime = $bdd->prepare('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 5');
		$articleTime->execute(array());


par

$articleTime = $bdd->query('SELECT * FROM articles ORDER BY date_time_publication DESC LIMIT 5');


avec toujours à la fin de ta fonction le closeCursor.
Modifié par yiujia (31 Mar 2019 - 11:11)