sql >> Database >  >> RDS >> Mysql

Probleem bij het opslaan van gegevens in de database in php

Ten eerste gebruik je een koppelteken voor je sex-select kolom.

MySQL denkt dat je een wiskundige vergelijking wilt maken die zich vertaalt naar:

geslacht (min) selecteren.

Wikkel het in backticks en mis de kolom voor photo

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

met mysql_error() met mysql_query() zou de fout hebben aangegeven.

Ook $sex-select dat moet $sex_select . zijn gebruik ook geen koppeltekens voor variabelen.

Dus verander al die instanties in $sex_select ook in uw WAARDEN.

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

Ik heb gemerkt dat zowel je DB als je tabel crop heten .

$mysql_database = "crop";

en

mysql_query("INSERT INTO crop...

Een daarvan kan onjuist zijn. Zorg ervoor dat de DB-naam is wat deze zou moeten zijn, samen met de tabel. Dat lijkt me gewoon niet goed, maar ik kan het mis hebben. Alleen jij weet hoe ze heten.

Plus mysql_close($con); dit moet mysql_close($bd); . zijn
aangezien je $bd = mysql_connect . gebruikt

Voeg foutrapportage toe naar de bovenkant van uw bestand(en), wat helpt bij het testen van de productie.

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

wat zou hebben aangegeven dat de fout ook, wat iets is dat u niet doet, op fouten controleert. Dit is belangrijk tijdens de ontwikkeling.

BEWERKEN: voor het controleren van fouten in de DB-verbinding:

In plaats van:

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

Gebruik het volgende om eventuele fouten op te sporen, mochten die er zijn. Gebruik die("Could not connect database") is niet goed genoeg.

Als crop is niet de database, MySQL zal het je vertellen.

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

Hetzelfde geldt voor uw vraag:

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

Plus, volgens uw HTML-formulier:

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

zou moeten zijn

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


  1. Is het mogelijk om resultaten van een JOIN-query te BEPERKEN?

  2. Mysql maand - jaar vergelijking

  3. php+mysql:voeg een php-array in mysql in

  4. MySql back-up en herstel