sql >> Databáze >  >> RDS >> Mysql

Problém s ukládáním dat do databáze v php

Za prvé, pro sex-select používáte pomlčku sloupec.

MySQL si myslí, že chcete vytvořit matematickou rovnici, což znamená:

pohlaví (minus) vyberte.

Zabalte jej do zadních značek a chybí sloupec pro photo

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

s použitím mysql_error() pomocí mysql_query() by signalizoval chybu.

Také $sex-select to musí být $sex_select nepoužívejte pomlčky také pro proměnné.

Změňte tedy všechny tyto instance na $sex_select také ve vašich VALUES.

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

Všiml jsem si, že vaše databáze i tabulka se jmenují crop .

$mysql_database = "crop";

a

mysql_query("INSERT INTO crop...

Jeden z nich může být nesprávný. Ujistěte se, že název DB je takový, jaký má být, spolu s tabulkou. To se mi nezdá správné, ale mohu se mýlit. Jen vy víte, jak se jmenují.

Plus mysql_close($con); toto by mělo být mysql_close($bd);
protože používáte $bd = mysql_connect

Přidat hlášení chyb na začátek vašich souborů, což vám pomůže při produkčním testování.

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

což by signalizovalo, že chyba, což je něco, co neděláte, je kontrola chyb. To je důležité během vývoje.

UPRAVIT: pro kontrolu chyb připojení DB:

Místo:

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

K zachycení případných chyb použijte následující postup. Pomocí die("Could not connect database") není dost dobrý.

Pokud crop není databáze, řekne vám 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());
}

Totéž pro váš dotaz:

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

Navíc podle vašeho HTML formuláře:

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

by měl být

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


  1. Funkce MYSQL TIMEDIFF dlouhodobě nefunguje

  2. Oracle vložit do vracení

  3. exportuje imdbpy2sql.py zvukové stopy do mysql?

  4. Oracle REGEXP_LIKE a hranice slov