Comment sortir de la bdd ? [Résolu]

Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
- - Dernière réponse : Georges97427
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
- 19 août 2011 à 05:22
Boujour,

Debutant,

J'essaye d'inscrire dans ma bdd que j'ai ouverte avec wamp-phpadmin.
mais lorsque j'ai inscrit une ligne je sors avec le message fatal erreur-mais les données ont été inscrite, mais comme je veux continuer je suis obliger de tout relancer.
voilà ce que j'ai écrit à la fin:
Normalement mysql_close est l'instruction.
Merci

mysql_query ($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error()); 
                            
            // on ferme la connexion
            mysql_close();
Afficher la suite 

18 réponses

Meilleure réponse
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
3
Merci
Bonjour,

alors juste pour tester, quand tu fermes la connexion avec mysql_close(), tente de passer l'identifiant de ta connexion mysql en paramètre
par exemple, tu initialises la connexion avec $rRes = mysql_connect(les paramètres...) ; quand tu fermes la connexion: mysql_close($rRes);

bonne après midi

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_47
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
3
Merci
47 j'ai essayé mais rien...
Blacknight91titi ton lien m'était bénéfique.
On peut lire:
L'utilisation de mysql_close() n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script.

Il faut l'enlever.
Merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Georges97427
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Hello,

n'étant pas un expert en SQL je te propose de lire ce tuto que j'ai moi-même lu : PHP et MySQL/SQL, dans la section BDD tu trouveras plein de choses qui pourront t'aider.

A plus ,

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
Commenter la réponse de BBFUNK01
Messages postés
1754
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
1
0
Merci
Bonjour,

Peux-tu nous montrer la requête SQL que tu essai d'exécuter (la valeur de $sql) ?
Le problème vient sûrement de ce que coté là.

Osteres
[www.osteres.com www.osteres.com]
Commenter la réponse de Blacknight91titi
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
les données sont inscrite dans la bdd (je suis sous Wamp)phpadmin.
une fois l'opération terminée ,je reçois:

La connexion a été réinitialisée.
mais je ne revient plus dans le programme.
peut-être que je suis en localhost?

//On prépare la commande sql d'insertion
            $sql = 'INSERT INTO Utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")'; 
                            
            /*on lance la commande (mysql_query) et au cas où, 
            on rédige un petit message d'erreur si la requête ne passe pas (or die) 
            (Message qui intègrera les causes d'erreur sql)*/
            mysql_query ($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error()); 
                            
            // on ferme la connexion
            mysql_close();
Commenter la réponse de Georges97427
Messages postés
1754
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
1
0
Merci
As-tu pensé à protéger ta requête des injections SQL ?

Cela passe notamment par l'utilisation de la fonction mysql_real_escape_string et addslashes.

Tu as de bons exemples de compréhension à cette adresse (rapide à lire).
http://php.net/manual/fr/function.mysql-real-escape-string.php


Et si tu retires le mysql_close, as-tu toujours cette erreur ?


Osteres
[www.osteres.com www.osteres.com]
Commenter la réponse de Blacknight91titi
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
14
0
Merci

Il faut l'enlever.

Seulement si tu le veux, mais dans ton cas ce n'est pas tant son existence ou non qui changera quelque chose à ton problème !

mais lorsque j'ai inscrit une ligne je sors avec le message fatal erreur-mais les données ont été inscrite, mais comme je veux continuer je suis obliger de tout relancer.

Le mieux aurait été de fournir le message d'erreur complet...perdre du temps pour rien ne sers à rien !



______________________________________________________________________
Commenter la réponse de phpAnonyme
Messages postés
49
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
16 mai 2012
0
Merci
Ton INSERT SQL n'est pas bon : Insert MySQL

darkelda
Développeur PHP&MySQL / Webmaster Freelance
Suivez Moi
Commenter la réponse de darkelda
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
darkelda Il est où le INSERT MySQL?
J'ai beau chercher, mais.....
Commenter la réponse de Georges97427
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

darkelda Il est où le INSERT MySQL?
J'ai beau chercher, mais.....

Il est dans ton message du vendredi 5 août 2011 à 10:30:53

Perso je ne vois pas d'erreur de syntaxe dans ta requête INSERT, mais sans la structure de la table on ne peut certifier qu'il n'y a pas de pb.

Moi j'ai beau chercher, je ne trouve pas de réponse à :
Le mieux aurait été de fournir le message d'erreur complet...perdre du temps pour rien ne sers à rien !



Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Bonjour Kohntark,

Voilà d'où vient cette interrogation, du tutoriel de Sylvie Vauthier:

http://sylvie-vauthier.developpez.com/tutoriels/php/grand-debutant/?page=intro-bdd#LVI-2-e

Peut-être l'ensemble te donnera des solutions.
En tous les cas un grand Merci pour ton "acharnement" à chercher et...trouver...certain devrait en faire autant...
Cordialement
Georges
Commenter la réponse de Georges97427
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Peut-être l'ensemble te donnera des solutions.

C'est plutôt toi qui a besoin de solution mais pour se faire il est nécessaire que tu donnes le message d'erreur complet qui tu obtiens ... message que tu ne sembles pas enclin à nous fournir :(

Je n'ai pas lu le tuto (juste ouvert la page), mais je te conseille de l'oublier pour la simple utilisation des fonctions mysql_* qui sont obsolètes.
Tant qu'à apprendre pars donc sur de bonne bases en employant plutôt les fonctions mysqli() ou PDO

Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
C'est plutôt toi qui a besoin de solution mais pour se faire il est nécessaire que tu donnes le message d'erreur complet qui tu obtiens ... message que tu ne sembles pas enclin à nous fournir :(


Si, si !! mais...........Il n'y a plus de message d'erreur, mille fois pardon, j'aurais certainement fait une erreur que je ne m'explique pas...mais ça semble fonctionner!!
pardon!!!

Tant qu'à apprendre pars donc sur de bonne bases en employant plutôt les fonctions mysqli() ou PDO

Mais quelles sont ces bonnes bases??
que me conseilles-tu?
Je croyais que les tutos de S. Vauthier et Rossolini étaient les "meilleurs"!
Cordialement
Commenter la réponse de Georges97427
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
pardon!!!

Y a pas de mal

Je croyais que les tutos de S. Vauthier et Rossolini étaient les "meilleurs"!

La preuve que non.
Ces fonctions sont dépréciées et l'étaient déjà lors de la date de sortie du tutoriel.
J'ajouterai au titre "PHP : Le tutoriel pour grands débutants pressés"
... ou comment mal commencer
Je parle juste des fonctions mysql_*, je n'ai pas lu le reste.
Par ailleurs un "grand débutant" ne devrait en aucun cas être pressé, sauf s'il veux se planter lamentablement.

Au passage, ce genre de truc donné dans le tuto :
/*on lance la commande (mysql_query) et au cas où, 
on rédige un petit message d'erreur si la requête ne passe pas (or die) 
(Message qui intègrera les causes d'erreur sql)*/
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error());

est à proscrire !!!
En faisant ça on affiche des informations très importantes qui peuvent servir à pirater le site.

De même ce tuto est une porte ouverte aux injections SQL (aucun traitement des variables postées)

Avec un code comme ça le moindre naze qui passe par là fait sauter le site !!


Mais quelles sont ces bonnes bases??
que me conseilles-tu?

Je l'ai dit plus haut :
"en employant plutôt les fonctions mysqli() ou PDO "
Parce que ces fonctions sont bien plus puissantes et flexibles que les fonctions mysql_*, qu'elles sont toujours en cours d'évolution, qu'elles sont orientées objet, etc ... etc ...
La lecture de la doc t'en dira plus.

Je n'ai pas de lien de tutos à te proposer.
On trouve vraiment de tout sur le net, des bons, des mauvais, des mauvais qui étaient bons lors de leur parution, ... Bref, pas toujours simple pour un débutant de faire le bon choix.
Le recours systématique à la doc est une bonne idée, et CS est là pour le reste


Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
La lecture de la doc t'en dira plus.

Est-ce que celle du site PHP est valable, car il faut bien démarrer..

Je suis juste entrain de me construire une base de données en electronique (pour débuter) "rangement de mes composants à la maison"
J'ai construit ma base de données avec plusieurs tables (une pour les transfos et après pour les transistors etc...)
Je veux inscrire chaque composants avec ses caractéristiques dans la bdd.
mais ça bloque:
Voilà ce que j'ai pour l'instant:

$hote = "localhost";
$base = "00002_electronique";
$table = "transformateurs";
$user = "root";
$password = "";


<?php
include("fonctions.php");
?>
<html>
    <head><title>Formulaire de saisie utilisateur </title></head>
    
        Inscrivez les transformateurs !

        Entrez les données demandées :

        <form name="inscription" method="post" action="form.php">
            Entrez l'intensite :  

            entrez la tension 	 

            Entrez la puissance : 

            Entrez la soudure : 


        </form>
        <?php
        if (isset ($_POST['valider'])){
            //On récupère les valeurs entrées par l'utilisateur :
            $intensite=$_POST['intensite'];
            $tension=$_POST['tension'];
            $puissance=$_POST['puissance'];
$soudure=$_POST['soudure'];

            //On construit la date d'aujourd'hui
            //strictement comme sql la construit
            $today = date("y-m-d");
            //On se connecte
            connecttransformateurs();//je ne sais pas!!!!!!!
                            
            //On prépare la commande sql d'insertion
            $sql =  'INSERT INTO Utilisateurs VALUES("","'.$intensite.'","'.$tension.'","'.$puissance.'","'.$soudure.'","'.$today.'")'; 
            

fonction.php
<?php
function connect00002_electronique(){
    $base  = mysql_connect ('localhost', 'root', '');  
    mysql_select_db ('00002_electronique', 'transformateurs') ;
}
?>


J'aurais pu mettre les chiffres I=2A mais ça je ne sais pas faire, c'est pourquoi j'ai choisi TEXT.
Désolé pour les fautes grossières, mais avec une nouvelle table....
Merci
Cordialement
Commenter la réponse de Georges97427
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Commenter la réponse de Georges97427
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Est-ce que celle du site PHP est valable

La doc officielle est sur php.net, et, oui, elle est valable est très bien faite pour 95% du contenu. Attention toutefois aux commentaires laissés par les programmeurs en bas de page, ils ne sont pas tous à suivre.

Désolé pour les fautes grossières

Désolé, je n'ai pas regardé le code et ne compte pas le regarder dans ces conditions.

En plus du règlement, de très nombreux intervenants t'ont invité à être précis dans tes demandes, à décrire clairement ce qu'il se passe, à fournir le message d'erreur complet, etc ... etc ...

Une fois de plus tu nous dis : "mais ça bloque"

Ne serait ce que dire :
"je poste bien mon formulaire, aucune erreur ne m'est retournée, mais les données ne sont pas insérées dans la table" motiverait déjà plus.

Il serait temps que tu y mettes un peu du tiens


Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
54
Date d'inscription
mardi 28 juin 2011
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Mais Kohntrack comment veux-tu qu'ont décrivent quelque chose qui vous arrive pour la première fois!!
Si je connaissais le phénomène, bien sûr j'aurais les moyens d'être précis!!
Je ne comprends pas...je suis un débutant...et tu es un prof.(comme dit le proverbe, il n'y a pas de question idiote, mais...) C'est pourquoi je cherche de l'aide sur un forum.
Comment peut-on décrire de façon précis, un phénomène qu'on ne maitrise pas?(sinon on en connait la solution!)?
Je m'évertue à être précis mais apparemment je n'arrive pas....désolé pour la confusion.

1-j'ai lu qu'on pouvait réaliser plusieurs tables dans une base de données(ce que je veux faire). Malheureusement je n'ai jamais vu un seul exemple, comment fait-on? J'attendais un peu de pédagogie...
2-Je voulais savoir comment connecte-t-on la nouvelle table?
connecttransformateurs();//je ne sais pas!!!!!!!

Est-ce que cette écriture est exacte?

Si je suis toujours aussi confus et imprécis (pourtant je m'y attelle!!) alors tant pis pour moi...j'assume.
Néanmoins, merci de ta compréhension.
Cordialement
Georges
Commenter la réponse de Georges97427