Bonjour à tous...

A chaque fois que je poste un petit bout de code, on me fait gentiment remarquer que je n'utilise pas de la POO et que mes commandes "classiques" seront bientôt obsolètes...
Je me suis donc documenté et je reprends actuellement toutes mes requêtes pour utiliser l'interface PDO.

Le problème est que ce qui fonctionnait bien avant PDO ne fonctionne plus maintenant !
Par exemple, cette insertion de données dans la table "menu_aliments" ne fonctionne pas, la page reste bloquée sur un écran blanc et rien ne s'insert dans la table !

<?php
// Connexion à la base de données :
try {
$bdd = new PDO('mysql:host=localhost;dbname=locale','moi','pass',array(1002 => 'SET NAMES utf8'));

}
catch(PDOException $e) {
    echo 'La base de donnees n\'est pas accessible, veuillez reessayer plus tard !';
}

// Préparation de la requête : 
$req = $bdd->prepare('INSERT INTO menu_aliments (aliment_nom,aliment_classe,aliment_unite,aliment_calorie,aliment_rayon)
    VALUES (:nom,:classe,:unite,:calorie,:rayon)');

// Préparation des données et envoi requête : 
$req->execute(array(
    'nom' =>'POMME',
    'classe' => 'FRUIT',
    'unite' => 'gr',
    'calorie' => '123',
    'rayon' => 'FRUITS'
));
?>

Merci d'avance pour votre aide !

6 réponses


Etienne69
Auteur
Réponse acceptée

Désolé pour le dérangement ! ! ! Je vais aller me cacher la tête dans le
sable :

include ('connexion.php');

Ça va mieux avec la bonne extension...

Pour faire + simple j'avais collé le contenu de mon code "connexion.php" dans la page
que j'avais posté mais sinon, en production je l'avais appelé par un include('connexion');

Je profite de ce message pour te remercier pour tout le boulot que tu fais...
Je vais à l'avenir essayer d'être plus attentif !

D'autre part, je viens de faire un essai avec ça :

<?php
include ('connexion');

// Préparation de la requête : 
$sql = 'SELECT * FROM menu_aliments';

// Exécution de la requête : 
$req = $bdd->query($sql);

echo 'Requête effectuée !';
?>

J'ai une erreur [HTTP/1.0 500 Internal Server Error 1ms] dans ma console Firefox dès que j'ajoute la ligne n°3 : $req = $bdd->query($sql);

Affiche les erreurs pour voir ce qu'il peut se passer.

J'ai marqué résolu, mais comment aurais-je pu gagner du temps en
faisant ressortir cette erreur grossière ?
Pourquoi n'ai-je pas eu un message d'erreur sur l'appel de la page ?

Ca peut venir de comment tu as fixé les rapports d'erreurs.

http://php.net/manual/fr/function.error-reporting.php

Merci SquallX pour l'info, je vais aller jeter un oeil dans la doc..