Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problème de stockage des données dans la base de données en php

Tout d'abord, vous utilisez un trait d'union pour votre sex-select colonne.

MySQL pense que vous voulez faire une équation mathématique qui se traduit par :

sexe (moins) sélectionnez.

Enveloppez-le de backticks et manquez la colonne pour photo

(fname, lname, email, pass, phone, photo, `sex-select`, month,day,year)
                                   ^^^^^^ missing column

avoir utilisé mysql_error() avec mysql_query() aurait signalé l'erreur.

Aussi $sex-select qui doit être $sex_select n'utilisez pas non plus de traits d'union pour les variables.

Alors changez toutes ces instances en $sex_select dans vos VALEURS aussi.

('$fname', '$lname', '$email', '$pass', '$phone', '$photo', '$sex_select', '$month','$day','$year')

J'ai remarqué que votre base de données et votre table sont nommées crop .

$mysql_database = "crop";

et

mysql_query("INSERT INTO crop...

L'un d'entre eux peut être incorrect. Assurez-vous que le nom de la base de données est ce qu'il devrait être, ainsi que la table. Cela ne me semble pas juste, mais je peux me tromper. Vous seul savez comment ils s'appellent.

Plus mysql_close($con); cela devrait être mysql_close($bd);
puisque vous utilisez $bd = mysql_connect

Ajouter rapport d'erreurs en haut de vos fichiers, ce qui vous aidera lors des tests de production.

error_reporting(E_ALL);
ini_set('display_errors', 1);

qui aurait également signalé cette erreur, ce que vous ne faites pas, est de vérifier les erreurs. Ceci est important pendant le développement.

MODIF : pour la vérification des erreurs de connexion à la base de données :

Au lieu de :

$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "crop";
$prefix = "";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");

Utilisez ce qui suit pour détecter les erreurs, s'il y en a. Utilisation de die("Could not connect database") n'est pas assez bon.

Si crop n'est pas la base de données, MySQL vous le dira.

<?php
$bd = mysql_connect('localhost', 'root', '');
if (!$bd) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('crop', $bd);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

Idem pour votre requête :

$result = mysql_query("INSERT INTO crop(fname, lname, email, pass, phone, photo, `sex-select`, month,day,year)  
VALUES ('$fname', '$lname', '$email', '$pass', '$phone', '$photo', '$sex-select', '$month','$day','$year')");

if (!$result) {
    die('Invalid query: ' . mysql_error());
}

De plus, selon votre formulaire HTML :

<select name="sex-select" id="sex-select">

devrait être

<select name="sex_select" id="sex-select">