Mysql
 sql >> Database >  >> RDS >> Mysql

Problema nella memorizzazione dei dati nel database in php

In primo luogo, stai utilizzando un trattino per il tuo sex-select colonna.

MySQL sta pensando che tu voglia fare un'equazione matematica che si traduce in:

sesso (meno) seleziona.

Avvolgilo in backtick e manca la colonna per photo

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

aver usato mysql_error() con mysql_query() avrebbe segnalato l'errore.

Inoltre $sex-select deve essere $sex_select non utilizzare trattini anche per le variabili.

Quindi cambia tutte queste istanze in $sex_select anche nei tuoi VALUES.

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

Ho notato che sia il tuo DB che la tabella sono denominati crop .

$mysql_database = "crop";

e

mysql_query("INSERT INTO crop...

Uno di questi potrebbe non essere corretto. Assicurati che il nome del DB sia quello che dovrebbe essere, insieme alla tabella. Semplicemente non mi sembra giusto, ma potrei sbagliarmi. Solo tu sai come si chiamano.

Inoltre mysql_close($con); questo dovrebbe essere mysql_close($bd);
poiché stai usando $bd = mysql_connect

Aggiungi segnalazione errori all'inizio dei tuoi file che ti aiuteranno durante i test di produzione.

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

che avrebbe segnalato anche quell'errore, che è qualcosa che non stai facendo, sta controllando gli errori. Questo è importante durante lo sviluppo.

MODIFICA: per il controllo degli errori di connessione DB:

Invece di:

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

Utilizzare quanto segue per rilevare eventuali errori, se presenti. Usando die("Could not connect database") non è abbastanza buono.

Se crop non è il database, te lo dirà MySQL.

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

Lo stesso per la tua richiesta:

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

Inoltre, secondo il tuo modulo HTML:

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

dovrebbe essere

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