Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema no armazenamento de dados no banco de dados em php


Em primeiro lugar, você está usando um hífen para sua sex-select coluna.

O MySQL está pensando que você quer fazer uma equação matemática que se traduz em:

sexo (menos) selecione.

Envolva-o em acentos graves e faltando a coluna para photo
(fname, lname, email, pass, phone, photo, `sex-select`, month,day,year)
                                   ^^^^^^ missing column

tendo usado mysql_error() com mysql_query() teria sinalizado o erro.

Também $sex-select que precisa ser $sex_select não use hífens para variáveis ​​também.

Portanto, altere todas essas instâncias para $sex_select em seus VALORES também.
('$fname', '$lname', '$email', '$pass', '$phone', '$photo', '$sex_select', '$month','$day','$year')

Percebi que seu banco de dados e sua tabela são nomeados crop .
$mysql_database = "crop";

e
mysql_query("INSERT INTO crop...

Um deles pode estar incorreto. Certifique-se de que o nome do banco de dados seja o que deveria ser, junto com a tabela. Isso não me parece certo, mas posso estar errado. Só você sabe como eles são chamados.

Mais mysql_close($con); deve ser mysql_close($bd);
já que você está usando $bd = mysql_connect

Adicionar relatório de erros no topo do(s) seu(s) arquivo(s), o que ajudará durante o teste de produção.
error_reporting(E_ALL);
ini_set('display_errors', 1);

o que teria sinalizado esse erro também, que é algo que você não está fazendo, é verificar se há erros. Isso é importante durante o desenvolvimento.

EDITAR: para verificação de erros de conexão do banco de dados:

Ao invés 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 o seguinte para detectar quaisquer erros, caso haja algum. Usando die("Could not connect database") não é bom o suficiente.

Se crop não é o banco de dados, o MySQL lhe 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());
}

O mesmo para sua 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());
}

Além disso, de acordo com seu formulário HTML:
<select name="sex-select" id="sex-select">

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