Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem beim Speichern von Daten in der Datenbank in PHP

Erstens verwenden Sie einen Bindestrich für Ihre sex-select Spalte.

MySQL denkt, Sie möchten eine mathematische Gleichung erstellen, die übersetzt wird in:

Geschlecht (minus) auswählen.

Wickeln Sie es in Backticks ein und lassen Sie die Spalte für photo aus

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

mysql_error() verwendet haben mit mysql_query() hätte den Fehler signalisiert.

Auch $sex-select das muss $sex_select sein Verwenden Sie auch keine Bindestriche für Variablen.

Ändern Sie also alle diese Instanzen in $sex_select auch in Ihren WERTEN.

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

Mir ist aufgefallen, dass sowohl Ihre DB als auch Ihre Tabelle crop heißen .

$mysql_database = "crop";

und

mysql_query("INSERT INTO crop...

Einer davon kann falsch sein. Stellen Sie sicher, dass der DB-Name zusammen mit der Tabelle so ist, wie er sein sollte. Das sieht für mich einfach nicht richtig aus, aber ich könnte mich irren. Nur Sie wissen, wie sie heißen.

Plus mysql_close($con); Dies sollte mysql_close($bd); sein
da Sie $bd = mysql_connect verwenden

Fügen Sie Fehlerberichterstattung hinzu an den Anfang Ihrer Datei(en), was beim Produktionstest hilft.

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

was diesen Fehler auch signalisiert hätte, was Sie nicht tun, ist die Überprüfung auf Fehler. Dies ist während der Entwicklung wichtig.

BEARBEITEN: für DB-Verbindungsfehlerprüfung:

Statt:

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

Verwenden Sie Folgendes, um Fehler abzufangen, falls es welche geben sollte. Verwendung von die("Could not connect database") ist nicht gut genug.

Wenn crop nicht die Datenbank ist, wird MySQL es Ihnen mitteilen.

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

Gleiches gilt für Ihre Anfrage:

$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, gemäß Ihrem HTML-Formular:

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

sollte

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