Bonjour,
Je n'arrive pas à insérer une ligne/colonne de champs dans mysql
J'arrive à me connecter à la base, mais pas à la table utilisateurs apparemment.
Le code est en PJ.
form1.php
Merci de votre aide
Bonjour,
Je n'arrive pas à insérer une ligne/colonne de champs dans mysql
J'arrive à me connecter à la base, mais pas à la table utilisateurs apparemment.
Le code est en PJ.
form1.php
Merci de votre aide
Impossible de lire ton fichier, mais, quoi qu'il en soit, mets ton code dans des balises code...
Tu n'arrives pas à insérer, peut être, à te connecter, ça m'étonnerait.J'arrive à me connecter à la base, mais pas à la table utilisateurs apparemment.
Un problème sans solution est un problème mal posé. (Albert Einstein)
Voilà le code du fichier de connection fonctionC.php
et le reste
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 <?php $servername = "localhost"; $database = "mabase"; $username = "root"; $password = ""; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; //mysqli_close($conn); ?>
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 <?php include("fonctionC.php"); ?> <html> <head><title>Formulaire de saisie utilisateur </title></head> <body> <h1>Inscrivez-vous !</h1> <h2>Entrez les données demandées :</h2> <form name="inscription" method="post"> Entrez votre pseudo : <input type="text" name="pseudo"/> <br/> Garçon ou fille ? <input type="radio" name="sexe" value="G"/>Garçon<input type="radio" name="sexe" value="F"/>Fille<br/> Entrez votre age : <input type="text" name="age"/><br/> <input type="submit" name="valider" value="OK"/> </form> <?php if (isset ($_POST['valider'])){ //On récupère les valeurs entrées par l'utilisateur : $pseudo=$_POST['pseudo']; $age=$_POST['age']; $sexe=$_POST['sexe']; //On construit la date d'aujourd'hui //strictement comme sql la construit $today = date("y.m.d"); //echo 'La date est '. $today.'; //On se connecte //connectMaBase(); //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.'<br />'.mysql_error()); // on ferme la connexion //mysql_close(); } ?> </body> </html>
Tout d'abord, évite d'utiliser des requêtes non préparées et paramétrées. Un petit malin passe et met unEt toute tes données sont compromises (un peu de doc SQL injection)" or ""="
Tu peux préparer et paramétrer tes query grâce à ce lien :
https://www.php.net/manual/fr/mysqli.prepare.php
Pour info PDO est plus sécurisé que du mysqli sur pas mal d'aspects. Après ce n'est en aucun cas une obligation...
Je présume que tu es connecté mais que l'insert de ne fait pas ?
Pourquoi ? Tes valeurs ?
De plus :
Spécifie tes valeurs à insérer avant Insert mysql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")';
Dans l'immédiat, fait tes tests sans requête préparée, comme ça tu peux copier coller ta requete et vérifier sur phpmyadmin si ça marche ou pas. Et après tu pourras améliorer cela.
Un problème sans solution est un problème mal posé. (Albert Einstein)
Et aussi :
- les champs sont les zones de saisie d'un formulaire ou les zones d'édition d'un état, on n'insère donc pas dans des champs, mais dans des colonnes ;
- il est préférable de citer les colonnes dans lesquelles on insère insert into ma_table (col1, col2, ..., coln) values(val1, val2, ..., valn)
plutôt que de laisser le moteur du SGBD rechercher la correspondance. Et ça sécurise le code en cas d'évolution de la structure ;- il est très rarement pertinent de stocker un âge. Il vaut mieux stocker la date de naissance et en déduire l'âge au moment où l'on en a besoin.
Partager