sql >> Base de Datos >  >> RDS >> Mysql

Problema al almacenar datos en la base de datos en php

En primer lugar, está utilizando un guión para su sex-select columna.

MySQL está pensando que quieres hacer una ecuación matemática que se traduce en:

seleccionar sexo (menos).

Envuélvelo en acentos graves y falta la columna para photo

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

haber usado mysql_error() con mysql_query() habría señalado el error.

También $sex-select eso debe ser $sex_select no utilice guiones para las variables también.

Así que cambie todas esas instancias a $sex_select en tus VALORES también.

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

Noté que tanto su base de datos como su tabla se llaman crop .

$mysql_database = "crop";

y

mysql_query("INSERT INTO crop...

Uno de esos puede ser incorrecto. Asegúrese de que el nombre de la base de datos sea el que debería ser, junto con la tabla. Eso no me parece correcto, pero podría estar equivocado. Solo tú sabes cómo se llaman.

Más mysql_close($con); esto debería ser mysql_close($bd);
ya que está usando $bd = mysql_connect

Agregue informe de errores en la parte superior de su(s) archivo(s), lo que ayudará durante las pruebas de producción.

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

lo que también habría señalado ese error, que es algo que no está haciendo, es verificar si hay errores. Esto es importante durante el desarrollo.

EDITAR: para la verificación de errores de conexión DB:

En lugar 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");

Use lo siguiente para detectar cualquier error, en caso de que haya alguno. Usando die("Could not connect database") no es lo suficientemente bueno.

Si crop no es la base de datos, MySQL se lo dirá.

<?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 mismo para su consulta:

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

Además, según su formulario HTML:

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

debería ser

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