Php không có lỗi nhưng dữ liệu không chèn vào cơ sở dữ liệu

Đây là bài đăng đầu tiên của tôi trên DaniWeb và tôi đã đọc Nội quy thành viên, vì vậy tôi nghĩ đây là diễn đàn chính xác

Tôi đã tạo một trang bằng PHP thu thập bảy mục dữ liệu sau đó hiển thị chúng thấp hơn trên cùng một trang. Các cột dữ liệu được. tên, căn chỉnh, nguồn gốc, nguyên mẫu, chính, phụ và ghi chú. Tên và ghi chú là giá trị trường văn bản, phần còn lại là giá trị được chọn từ trình đơn thả xuống

Vì lý do nào đó, khi tôi thực hiện truy vấn INSERT bằng tất cả bảy giá trị thì truy vấn không thành công. Tuy nhiên, nếu tôi xóa các giá trị đã chọn thì nó sẽ hoạt động. Đây là mã





		

Names

"; } else { while($row = mysqli_fetch_assoc($result)) { $name = $row['name']; $alignment = $row['alignment']; $origin = $row['origin']; $archetype = $row['archetype']; $primary = $row['primary']; $secondary = $row['secondary']; $notes = $row['notes']; echo "\n"; } } ?>
ALIGNMENT ORIGIN ARCHETYPE PRIMARY SECONDARY NOTES
There are no names to view.
$alignment $origin $archetype $primary $secondary $notes

Tôi đã không bao gồm mã Javascript hoặc mã PHP đi kèm - nó không liên quan đến vấn đề (ít nhất, tôi không nghĩ vậy). Cảm ơn vì tất cả những gì bạn giúp

Câu trả lời được đề xuất

Bạn thử làm như sau nó sẽ báo lỗi cho bạn xem là lỗi gì. Có lẽ một trong các trường của bạn chứa dữ liệu không hợp lệ

$query = "INSERT INTO names (name, alignment, origin, archetype, primary, secondary, notes)
    VALUES ('$name', '$alignment', '$origin', '$archetype', '$primary', '$secondary', '$notes')";
  if($result = …

Chuyển tới bài viết

Tôi tin rằng các trích dẫn đơn xung quanh các biến ngăn PHP phân tích cú pháp chúng thành các biến. Điều này sẽ chèn giá trị bằng chữ '$name' vào cơ sở dữ liệu NẾU chúng đều là văn bản. Tuy nhiên, MySql sẽ bị lỗi do loại không khớp với các loại không phải văn bản

Chuyển tới bài viết

Tôi tin rằng các trích dẫn đơn xung quanh các biến ngăn PHP phân tích cú pháp chúng thành các biến. Điều này sẽ chèn giá trị bằng chữ '$name' vào cơ sở dữ liệu NẾU chúng đều là văn bản. Tuy nhiên, MySql sẽ bị lỗi do loại không khớp với các loại không phải văn bản

Bản thân truy vấn nằm trong dấu ngoặc kép, …

Chuyển tới bài viết

Tất cả 10 câu trả lời

Php không có lỗi nhưng dữ liệu không chèn vào cơ sở dữ liệu

pritaeas 2.114 ¯\_(ツ)_/¯ Người điều hành Featured Poster

12 năm trước

Bạn thử làm như sau nó sẽ báo lỗi cho bạn xem là lỗi gì. Có lẽ một trong các trường của bạn chứa dữ liệu không hợp lệ

$query = "INSERT INTO names (name, alignment, origin, archetype, primary, secondary, notes)
    VALUES ('$name', '$alignment', '$origin', '$archetype', '$primary', '$secondary', '$notes')";
  if($result = mysqli_query($con, $query)) {
    $success = "Successful!";
  } 
  else {
    $failure = "Unable to INSERT into DB: " . mysqli_error($con);
  }

JRM 107 Thực tế là một người đăng chính

12 năm trước

Tôi tin rằng các trích dẫn đơn xung quanh các biến ngăn PHP phân tích cú pháp chúng thành các biến. Điều này sẽ chèn giá trị bằng chữ '$name' vào cơ sở dữ liệu NẾU chúng đều là văn bản. Tuy nhiên, MySql sẽ bị lỗi do loại không khớp với các loại không phải văn bản

pritaeas 2.114 ¯\_(ツ)_/¯ Người điều hành Featured Poster

12 năm trước

Tôi tin rằng các trích dẫn đơn xung quanh các biến ngăn PHP phân tích cú pháp chúng thành các biến. Điều này sẽ chèn giá trị bằng chữ '$name' vào cơ sở dữ liệu NẾU chúng đều là văn bản. Tuy nhiên, MySql sẽ bị lỗi do loại không khớp với các loại không phải văn bản

Bản thân truy vấn nằm trong dấu ngoặc kép, vì vậy các biến sẽ được phân tích cú pháp. Chỉ khi các trích dẫn bên ngoài là đơn, chuỗi mới được phân tích cú pháp theo nghĩa đen. Các trích dẫn đơn xung quanh các biến là SQL theo định nghĩa

12 năm trước

Bản thân truy vấn nằm trong dấu ngoặc kép, vì vậy các biến sẽ được phân tích cú pháp. Chỉ khi các trích dẫn bên ngoài là đơn, chuỗi mới được phân tích cú pháp theo nghĩa đen. Các trích dẫn đơn xung quanh các biến là SQL theo định nghĩa

Bạn nói đúng, priteas. Các trích dẫn không phải là vấn đề. Và cảm ơn vì lời khuyên về. mysqli_erro($con). Nó cho tôi thông báo lỗi sau.
Bạn có lỗi trong cú pháp SQL của mình;

Vì vậy, tôi đang nghiên cứu điều này. Thật kỳ lạ vì tôi đang sử dụng cùng một mã ở nơi khác

12 năm trước

Sau một số lần thử và lỗi lỗi thời, tôi phát hiện ra rằng chỉ có cột/giá trị chính gây ra lỗi. Khi loại bỏ giá trị đó, tất cả sáu giá trị khác được nhập. Cột đó, cùng với các cột căn chỉnh và cột phụ đều là js được tạo. Đây là mã

Đây là một mẫu của php bao gồm số nguyên tố. mã inc

primebox.options[primebox.options.length] = new Option('','');
primebox.options[primebox.options.length] = new Option('Archery','Archery');
primebox.options[primebox.options.length] = new Option('Assault Rifle','Assault Rifle');
primebox.options[primebox.options.length] = new Option('Electrical Blast','Electrical Blast');
primebox.options[primebox.options.length] = new Option('Energy Blast','Energy Blast');
primebox.options[primebox.options.length] = new Option('Fire Blast','Fire Blast');
primebox.options[primebox.options.length] = new Option('Psychic Blast','Psychic Blast');
primebox.options[primebox.options.length] = new Option('Sonic Attack','Sonic Attack');

Nhưng tôi vẫn không biết tại sao cặp cột/giá trị này không hợp lệ

12 năm trước

Bạn đã thử lặp lại biến $primary để xem nó có chứa giá trị không?

12 năm trước

Bạn đã thử lặp lại biến $primary để xem nó có chứa giá trị không?

Vâng, tôi đã làm và nó hoạt động chính xác như tôi nghi ngờ. Trên thực tế, đó là điều cuối cùng tôi kiểm tra trước khi đăng ở đây. Tôi khá mệt mỏi với bí ẩn này - bây giờ JavaScript dang dở thậm chí còn không hoạt động. . ) Trang này được coi là một nơi ngu ngốc để theo dõi tên CoX trước khi tôi tiếp tục đăng ký. Buồn

12 năm trước

Trời ơi mình giải được rồi. Hóa ra 'chính' không được phép làm tên cột. Tôi đã đổi nó thành 'số nguyên tố' và tất cả đều tốt. Tôi đang dò dẫm xung quanh MySql. com đang đọc về Lập chỉ mục các cột khi tôi thấy thứ gì đó ghi nhãn một cột là Duy nhất hoặc Chính. Vâng, có bạn đi

Cảm ơn sự giúp đỡ ở trên, nhóm

12 năm trước

Ah làm tốt lắm, điều đó có ý nghĩa. Tôi gặp sự cố tương tự khi cố gắng sử dụng "desc" làm tên cột. MySQL diễn giải nó là "giảm dần"

pritaeas 2.114 ¯\_(ツ)_/¯ Người điều hành Featured Poster

12 năm trước

Trời ơi mình giải được rồi. Hóa ra 'chính' không được phép làm tên cột. Tôi đã đổi nó thành 'số nguyên tố' và tất cả đều tốt. Tôi đang dò dẫm xung quanh MySql. com đang đọc về Lập chỉ mục các cột khi tôi thấy thứ gì đó ghi nhãn một cột là Duy nhất hoặc Chính. Vâng, có bạn đi

Cảm ơn sự giúp đỡ ở trên, nhóm

Không nhận thấy điều này, nhưng vẫn có thể sử dụng chính làm tên cột. Để thực hiện việc này, hãy đặt dấu ngược xung quanh nó khi sử dụng nó trong một truy vấn, như thế này

SELECT `primary` FROM your_table

Trả lời chủ đề này

Hãy là một phần của cộng đồng DaniWeb

Chúng tôi là một cộng đồng thân thiện, tập trung vào ngành gồm các nhà phát triển, chuyên gia CNTT, nhà tiếp thị kỹ thuật số và những người đam mê công nghệ gặp gỡ, học hỏi và chia sẻ kiến ​​thức

Làm cách nào chúng ta có thể chèn dữ liệu vào cơ sở dữ liệu bằng PHP?

Câu lệnh INSERT INTO được sử dụng để thêm bản ghi mới vào bảng MySQL. CHÈN VÀO tên_bảng (cột1, cột2, cột3,. ) .
Truy vấn SQL phải được trích dẫn bằng PHP
Các giá trị chuỗi bên trong truy vấn SQL phải được trích dẫn
Các giá trị số không được trích dẫn
Từ NULL không được trích dẫn

Làm cách nào để tìm nạp và chèn dữ liệu từ cơ sở dữ liệu trong PHP?

Truy xuất hoặc tìm nạp dữ liệu từ cơ sở dữ liệu trong PHP .
CHỌN (các) tên_cột TỪ_tên_bảng
$query = mysql_query("select * from tablename", $connection);
$connection = mysql_connect("localhost", "root", "");
$db = mysql_select_db("công ty", kết nối $);
$query = mysql_query("chọn * từ nhân viên", $connection);

Làm cách nào tôi có thể gặp lỗi cơ sở dữ liệu trong PHP?

PDO sẽ chỉ đặt mã lỗi để bạn kiểm tra bằng cách sử dụng PDO. errorCode() và PDO. errorInfo() trên cả đối tượng câu lệnh và cơ sở dữ liệu ; . errorCode() hoặc PDOStatement. errorInfo() trên đối tượng đó.

Có thể sử dụng PHP cho cơ sở dữ liệu không?

Với PHP, bạn có thể kết nối và thao tác với cơ sở dữ liệu . MySQL là hệ thống cơ sở dữ liệu phổ biến nhất được sử dụng với PHP.