IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur SqlSyntax retourner au client


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Par défaut Erreur SqlSyntax retourner au client
    Bonjour a tous ,
    je fais un projet étudiant pour obtenir mon DUT . Je suis sur un projet PhP Laravel qui a pour but d'être un site d'auto-évaluation SQL ,càd, dans un questionnaire comportent plusieurs questions , la première s'affiche " Quels sont l'id et le titre des films ?" puis l'utilisateur entre sa requête dans un formulaire et je l’exécute à l'aide d'un PDO. Ensuite je dois comparer le résultat de sa requête avec le résultat que j'ai stocké dans la base puis si validation l'utilisateur passe à la suivante.
    J'ai réussie donc à exécuter sa requête puis afficher le résultat de la requête Nom : Requete.PNG
Affichages : 125
Taille : 36,4 Ko
    Mais voila je voudrai géré l'erreur dans la demande de requête ( si il met n'importe quoi ou si il demande une chose qui n'est pas dans la base)
    j'ai testé de mettre n'importe quoi et j'ai une erreur (Normal me direz vous ) qui est Nom : ErreurRequete.PNG
Affichages : 122
Taille : 65,8 Ko
    Donc je voudrai que cela ne s'affiche pas mais que cela affiche requête invalide en dessous du formulaire par exemple.

    Voici mon code de mon questionnaire:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    class QuestionnaireController extends Controller
    {
     
     
        public function index()
        {
            return view('questionnaire');
        }
     
     
        public function requete(Request $requete)
        {
            try {
                $connexion = NEW PDO('mysql:host=localhost;dbname=autoevaluationsql', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING,));
                $connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
            } catch (Exception $exception) {
                echo "Erreur : " . $exception->getMessage();
            }
            $sql = $requete->input('requete');
            try {
                $query = $connexion->prepare($sql);
                $query->execute();
                $resultat = $query->fetchAll();
            }catch (Exception $e){
                echo $e->getMessage();
            }
     
            $tableau = [];
            $tableauReponse = [];
            for ($i = 0; $i < sizeof($resultat); $i++) {
                $donnees = "";
                foreach ($resultat[$i] as $key => $valeur) {
                    $donnees .= $valeur . ' ';
                }
                $tableau[$i] = $donnees;
            }
            /*            $sqlRep = $requete->input('Select * from film');
                        $queryRep = $connexion -prepare($sqlRep);
                        $queryRep->execute();
                        $reponse = $queryRep->fetchAll();
                        for ($i = 0; $i < sizeof($reponse); $i++) {
                            $donnees = "";
                            foreach ($reponse[$i] as $key => $valeur) {
                                $donnees .= $key . ' : ' . $valeur . ' ';
                            }
                            $tableauReponse[$i] = $donnees;
                        }*/
     
     
            return view('questionnaire', ['traitement' => $tableau]);
     
    }
    }
    Et celui de ma vue
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    @section('content')
        <div class="container">
            <div class="row justify-content-center">
                <div class="col-md-8">
                    <div class="card">
                        <div class="card-header">Question n°1</div>
                        <div class="card-body">
                            <div class="form-group">
                                <div class="container">
                                    <form method="post" action="{{ url('questionnaire') }}">
                                        {{ csrf_field() }}
                                        <div class="row">
                                            <div class="input-group">
                                                <input class="form-control" name="requete"
                                                       placeholder="Entrez votre requête" required>
                                            </div>
                                        </div>
                                        <br>
                                        <div class="row">
                                            <div class="input-group">
                                                <input type="submit" class="btn btn-outline-dark" name="Valider"
                                                       value="Valider">
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>
                        </div>
                    </div>
     
     
                    @if(!empty($traitement))
                        <div class="card">
                            <div class="card-header">
                                Réponse traitement
                            </div>
     
                            <div class="card-body">
                                @for($i = 0; $i<count($traitement); $i++)
                                    {{ utf8_encode($traitement[$i]) }}<br>
                                @endfor
                                @else
                                    Aucune requête mentionnée
                            </div>
                        </div>
                    @endif
     
                </div>
            </div>
        </div>
    @endsection


    Merci d'avance de votre aide

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour, vous rentrez bien dans vos catch ? dans ce cas faites un return vers la vue avec un massage d'erreur et pas simplement un echo

Discussions similaires

  1. remonter erreur du serveur au client
    Par robert_trudel dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 05/09/2008, 12h44
  2. Detection erreur 403.7 (certificat client requis ) ASP.Net ou c#
    Par mr_mitchou dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 27/02/2008, 14h33
  3. [PDO] Liste des codes d'erreur MySQL retournés par PDO
    Par sliderman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/02/2008, 09h14
  4. Erreur sur un poste client
    Par Seth77 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 21/03/2007, 17h02
  5. Réponses: 9
    Dernier message: 06/09/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo