Mysql
 sql >> база данни >  >> RDS >> Mysql

Проблем при съхраняването на данни в база данни в php

Първо, използвате тире за вашия sex-select колона.

MySQL си мисли, че искате да направите математическо уравнение, което се превежда на:

избор на пол (минус).

Увийте го в обратни отметки и липсва колоната за photo

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

използвайки mysql_error() с mysql_query() би сигнализирал за грешката.

Също $sex-select това трябва да е $sex_select не използвайте тирета и за променливи.

Така че променете всички тези екземпляри на $sex_select също във вашите СТОЙНОСТИ.

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

Забелязах, че и вашата БД, и таблицата са с име crop .

$mysql_database = "crop";

и

mysql_query("INSERT INTO crop...

Един от тях може да е неправилен. Уверете се, че името на DB е това, което трябва да бъде, заедно с таблицата. Това просто не ми изглежда правилно, но може и да греша. Само вие знаете как се наричат.

Плюс mysql_close($con); това трябва да е mysql_close($bd);
тъй като използвате $bd = mysql_connect

Добавете докладване на грешки в началото на вашия файл(ове), което ще помогне по време на производственото тестване.

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

което също би сигнализирало тази грешка, което е нещо, което не правите, е проверка за грешки. Това е важно по време на разработката.

РЕДАКТИРАНЕ: за проверка на грешки при свързване с DB:

Вместо:

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

Използвайте следното, за да уловите всякакви грешки, ако има такива. Използване на die("Could not connect database") не е достатъчно добър.

Ако crop не е базата данни, 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());
}

Същото за вашата заявка:

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

Освен това, според вашия HTML формуляр:

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

трябва да бъде

<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. Проблеми със стартирането на MySQL сървъра на Mavericks

  2. mysql чувствителни към малки и главни букви имена на таблици в заявки

  3. Какъв е SQL еквивалентът на pandas 'transform'?

  4. картографиране на excel данни към mysql база данни

  5. Изявление Where:съответства на една дума (не на подниз)