Comment sortir de la bdd ?

Résolu
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013 - 4 août 2011 à 19:33
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();

18 réponses

cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
5 août 2011 à 13:34
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
3
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
5 août 2011 à 16:41
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
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
5 août 2011 à 07:33
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
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
5 août 2011 à 08:52
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
5 août 2011 à 10:30
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();
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
5 août 2011 à 10:35
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]
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
6 août 2011 à 05:10

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 !



______________________________________________________________________
0
darkelda Messages postés 49 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 16 mai 2012
13 août 2011 à 04:20
Ton INSERT SQL n'est pas bon : Insert MySQL

darkelda
Développeur PHP&MySQL / Webmaster Freelance
Suivez Moi
0
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
14 août 2011 à 04:46
darkelda Il est où le INSERT MySQL?
J'ai beau chercher, mais.....
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
14 août 2011 à 10:27
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 -
0
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
17 août 2011 à 17:10
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 août 2011 à 18:02
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 -
0
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
17 août 2011 à 19:45
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 août 2011 à 17:32
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 -
0
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
18 août 2011 à 19:40
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
0
Georges97427 Messages postés 54 Date d'inscription mardi 28 juin 2011 Statut Membre Dernière intervention 21 février 2013
18 août 2011 à 19:42
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 août 2011 à 20:38
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 -
0
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
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
0
Rejoignez-nous