Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Problem z przechowywaniem danych w bazie danych w php

Po pierwsze, używasz myślnika dla sex-select kolumna.

MySQL myśli, że chcesz wykonać równanie matematyczne, które przekłada się na:

płeć (minus) wybierz.

Zawiń go w backticki i brakuje kolumny dla photo

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

po użyciu mysql_error() z mysql_query() zasygnalizowałby błąd.

Również $sex-select to musi być $sex_select nie używaj myślników również dla zmiennych.

Więc zmień wszystkie te instancje na $sex_select w swoich WARTOŚCIACH.

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

Zauważyłem, że zarówno baza danych, jak i tabela mają nazwę crop .

$mysql_database = "crop";

i

mysql_query("INSERT INTO crop...

Jedna z nich może być nieprawidłowa. Upewnij się, że nazwa bazy danych jest taka, jak powinna, wraz z tabelą. To po prostu nie wygląda dobrze, ale mogę się mylić. Tylko Ty wiesz, jak się nazywają.

Plus mysql_close($con); powinno to być mysql_close($bd);
ponieważ używasz $bd = mysql_connect

Dodaj zgłaszanie błędów na górę pliku (plików), które pomogą podczas testowania produkcyjnego.

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

co sygnalizowałoby również ten błąd, którego nie robisz, to sprawdzanie błędów. Jest to ważne podczas opracowywania.

EDYTUJ: do sprawdzania błędów połączenia z bazą danych:

Zamiast:

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

Skorzystaj z poniższych wskazówek, aby wyłapać wszelkie błędy, jeśli takie występują. Używanie die("Could not connect database") nie wystarczy.

Jeśli crop nie jest bazą danych, MySQL powie ci.

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

To samo dla twojego zapytania:

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

Dodatkowo, zgodnie z formularzem HTML:

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

powinno być

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Budowanie bezpiecznego publicznego API z PHP/MYSQL

  2. Czy w Apache Spark 2.0.0 można pobrać zapytanie z zewnętrznej bazy danych (zamiast pobierać całą tabelę)?

  3. Maskowanie wyjścia MySQL (tj. numer telefonu, numer SSN itp. formatowanie wyświetlacza)

  4. Kodowanie PHP MySQL utf 8

  5. Zestaw znaków django z dziwnością MySQL