Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Masalah dalam menyimpan data ke dalam database di php

Pertama, Anda menggunakan tanda hubung untuk sex-select kolom.

MySQL berpikir Anda ingin mengerjakan persamaan matematika yang diterjemahkan menjadi:

jenis kelamin (dikurangi) pilih.

Bungkus dengan backticks dan hilangkan kolom untuk photo

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

setelah menggunakan mysql_error() dengan mysql_query() akan menandakan kesalahan.

Juga $sex-select yang harus $sex_select jangan gunakan tanda hubung untuk variabel juga.

Jadi ubah semua instance tersebut menjadi $sex_select di VALUES Anda juga.

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

Saya perhatikan DB dan tabel Anda diberi nama crop .

$mysql_database = "crop";

dan

mysql_query("INSERT INTO crop...

Salah satunya mungkin salah. Pastikan bahwa nama DB adalah apa yang seharusnya, bersama dengan tabelnya. Itu tidak terlihat benar bagi saya, tetapi saya bisa saja salah. Hanya Anda yang tahu apa namanya.

Ditambah mysql_close($con); ini harus mysql_close($bd);
karena Anda menggunakan $bd = mysql_connect

Tambahkan pelaporan kesalahan ke bagian atas file Anda yang akan membantu selama pengujian produksi.

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

yang akan menandakan kesalahan itu juga, yang merupakan sesuatu yang tidak Anda lakukan, sedang memeriksa kesalahan. Ini penting selama pengembangan.

EDIT: untuk pemeriksaan kesalahan koneksi DB:

Alih-alih:

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

Gunakan yang berikut ini untuk menangkap kesalahan apa pun, jika ada. Menggunakan die("Could not connect database") tidak cukup baik.

Jika crop bukan database, MySQL akan memberi tahu Anda.

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

Sama untuk kueri Anda:

$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, sesuai dengan formulir HTML Anda:

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

seharusnya

<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. Bagaimana cara menghapus aksen di MySQL?

  2. Haruskah saya menggunakan PDO PARAM_LOB atau PARAM_STR untuk tipe MySQL TEXT?

  3. Migrasi PHP dari mysql_* ke mysqli_

  4. MySQL menampilkan semua variabel yang ditentukan pengguna

  5. Re-Slaving Server Master MySQL yang Rusak dalam Pengaturan Replikasi Semisinkron