sql >> Databasteknik >  >> RDS >> Mysql

Problem med att lagra data i databasen i php

För det första använder du ett bindestreck för din sex-select kolumn.

MySQL tror att du vill göra en matematisk ekvation som översätts till:

kön (minus) välj.

Slå in den i backticks och saknar kolumnen för photo

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

efter att ha använt mysql_error() med mysql_query() skulle ha signalerat felet.

Även $sex-select det måste vara $sex_select använd inte bindestreck för variabler också.

Så ändra alla dessa instanser till $sex_select i dina VÄRDEN också.

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

Jag märkte att både din DB och tabell heter crop .

$mysql_database = "crop";

och

mysql_query("INSERT INTO crop...

En av dem kan vara felaktig. Se till att DB-namnet är vad det ska vara, tillsammans med tabellen. Det ser helt enkelt inte rätt ut för mig, men jag kan ha fel. Bara du vet vad de heter.

Plus mysql_close($con); detta bör vara mysql_close($bd);
eftersom du använder $bd = mysql_connect

Lägg till felrapportering till toppen av din(a) fil(er) vilket kommer att hjälpa till under produktionstestning.

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

vilket skulle ha signalerat att fel också, vilket är något du inte gör, kollar efter fel. Detta är viktigt under utveckling.

EDIT: för kontroll av DB-anslutningsfel:

Istället för:

$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");

Använd följande för att fånga eventuella fel, om det skulle finnas några. Använder die("Could not connect database") är inte tillräckligt bra.

Om crop är inte databasen, kommer MySQL att berätta.

<?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());
}

Samma sak för din fråga:

$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());
}

Dessutom enligt ditt HTML-formulär:

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

borde vara

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


  1. Jag hittar inget fel. den här koden fungerar bra. uppdatera mina data perfekt. men 1 fel visas

  2. mysql kan inte startas i Mgt Development Environment

  3. VÄLJ EN rad med värdet MAX() i en kolumn

  4. CAST() Funktion i Oracle