Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự cố khi lưu trữ dữ liệu vào cơ sở dữ liệu trong php

Thứ nhất, bạn đang sử dụng dấu gạch ngang cho sex-select của mình cột.

MySQL đang nghĩ rằng bạn muốn thực hiện một phương trình toán học có nghĩa là:

giới tính (trừ) chọn.

Bọc nó trong dấu gạch ngược và thiếu cột cho photo

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

đã sử dụng mysql_error() với mysql_query() có thể đã báo hiệu lỗi.

Ngoài ra $sex-select cần phải là $sex_select cũng không sử dụng dấu gạch nối cho các biến.

Vì vậy, hãy thay đổi tất cả các trường hợp đó thành $sex_select trong GIÁ TRỊ của bạn cũng vậy.

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

Tôi nhận thấy cả DB và bảng của bạn đều được đặt tên là crop .

$mysql_database = "crop";

mysql_query("INSERT INTO crop...

Một trong những điều đó có thể không chính xác. Đảm bảo rằng tên DB là tên của nó, cùng với bảng. Điều đó có vẻ không đúng với tôi, nhưng tôi có thể đã sai. Chỉ bạn mới biết chúng được gọi là gì.

Cộng với mysql_close($con); đây phải là mysql_close($bd);
vì bạn đang sử dụng $bd = mysql_connect

Thêm báo cáo lỗi lên đầu (các) tệp của bạn, điều này sẽ giúp ích trong quá trình thử nghiệm sản xuất.

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

mà cũng có thể báo hiệu lỗi đó, đó là điều bạn không làm, đang kiểm tra lỗi. Điều này rất quan trọng trong quá trình phát triển.

CHỈNH SỬA: để kiểm tra lỗi kết nối DB:

Thay vì:

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

Sử dụng phần sau để bắt bất kỳ lỗi nào, nếu có bất kỳ lỗi nào. Sử dụng die("Could not connect database") không đủ tốt.

Nếu crop không phải là cơ sở dữ liệu, MySQL sẽ cho bạn biết.

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

Tương tự cho truy vấn của bạn:

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

Ngoài ra, theo biểu mẫu HTML của bạn:

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

nên được

<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. Nhật ký khởi động MySQL 5.7.17 hiển thị [Lưu ý] Quyền truy cập bị từ chối đối với người dùng 'UNKNOWN_MYSQL_USER'

  2. Phương pháp báo giá PDO

  3. Tách các truy vấn mysql trong mảng, mỗi truy vấn cách nhau bởi;

  4. hiểu các mẹo về mũi tên trong biểu đồ EER của MySQL Workbench

  5. Truy vấn múi giờ MySQL