Vous n'êtes pas identifié(e).
Bonjour,
J'ai un problème que je ne parviens pas à résoudre. Ma requête d'insert génère 2 lignes dans la table.
Une première correcte puis, juste en dessous, une seconde ligne vide. L'incrémentation se fait normalement.
Je bosse en local avec la dernière version d'Easy Php.
Est-ce un bug de Myadmin?
Merci d'avance.
Hors ligne
Bonjour,
Encore une fois, tout comme on viens de le dire à Djinn, notre boule de cristal est en panne sans autre renseignement (Show create table+ code insert), ainsi que le moteur de la base utilisé (innoDB, MyIsam) sous MySQL.
La précision de ma réponse se limitera donc à la précision des informations fournies. Je pense que vous êtes sous innoDB et que votre deuxième insert à fait l'objet d'un rollback, dont la cause peut être variée mais vu que visiblement la raison ne peut provenir de la valeur de la clé primaire, je pencherais pour un doublon sur un index unique au sein de la ligne insérée ou un contrôle d'intégrité référentielle non conforme.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
vous avez entièrement raison!
voilà les infos:
requête création et le résultat
bonne soirée
Hors ligne
Bonjour,
Merci mais vous nous avez fourni 2 fois la même information^^. Votre code d'insertion en 2e aurait été préférable pour vous aider.
A bientôt donc.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
on va y arriver! heureusement que je poste sur un forum débutants
Voilà le résultat de la requête "Show create table" et au cas où, le php.
CREATE TABLE `avocats` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`prenom` longtext NOT NULL,
`competence` longtext NOT NULL,
`adresse1` varchar(100) NOT NULL,
`adresse2` varchar(100) NOT NULL,
`adresse3` varchar(100) NOT NULL,
`code` varchar(100) NOT NULL,
`ville` varchar(100) NOT NULL,
`tel` varchar(100) NOT NULL,
`fax` varchar(100) NOT NULL,
`mail` varchar(100) NOT NULL,
`web` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
Le PHP
Hors ligne
Saluton,
Et comment la requête est-elle soumise par PHP à MySQL ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Re-bonjour!
Je viens de répondre dans la fenêtre précédente!
Plomodiern? j'avais un ami Breton de Plomodiern. Yann Yourn Nicolas
Hors ligne
Je ne vois rien dans tout cela qui soit susceptible d'expliquer l'insertion dans la table d'une ligne vide en supplément de la ligne de data.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
O_o
Je fini par être grave moi aussi j'avais pas "compris" que la ligne était insérée mais vide, mais plutôt que l'insertion était annulée.
Une raison qui pourrait expliquer cela, c'est que les paramètres de la requête sont issus d'un formulaire et que la page de traitement est redemandée sans que les données soient repostées en $_GET ou $_POST.
De toute manière ne voit pas assez de code pour pouvoir faire un diagnostic certain.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Je vous livre le script traitement complet.
Parelellement , je vais tester en ligne, j'ai l'impression que Easyphp déconne un peu ou alors c'est moi qui ne vois plus rien à force d'essayer.
J'ai ce message sur ma requête d'insert.
33495207293You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'adresse','20000','ajaccio','33495207293','','','')' at line 1
la requête:
$sql = "INSERT INTO avocats (nom, prenom, competence, adresse_1, adresse_2, adresse_3, code, ville, tel, fax, email, web) VALUES('$nom','$prenom','$competence','$adresse_1','$adresse_2','$adresse_3','$code','$ville','$tel','$fax','$email','$web')";
<?php
$str=NULL;
$str = str_replace("\n\n","\n",$str);
try
{
// Connexion MySQL
$bdd = new PDO('mysql:host=localhost;dbname=annuaire', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur.
die('Erreur : '.$e->getMessage());
}
// On récupère tout le contenu de la table avocats
$reponse = $bdd->query("SELECT * FROM avocats WHERE nom= '". $_GET['nom']."'");
//affichage
while ($donnees = $reponse->fetch())
{
Dernière modification par kayorn (01-03-2014 07:37:43)
Hors ligne
Saluton,
Le message d'erreur tend à orienter vers le fait que l'un (ou plusieurs) des champs du formulaire contiendrai(en)t une apostrophe.
auquel cas addslashes() sera ton amie.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne