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

Cột không xác định trong danh sách trường

Đó là vì

của bạn
VALUES (%s,%s)

không bao quanh tên và nội dung biến họ bằng dấu ngoặc kép. Do đó, công cụ Sql back-end của bạn nghĩ rằng mohsen của bạn là tên cột, không phải giá trị.

Thay vào đó, hãy sử dụng, ví dụ:

VALUES (''%s'',''%s'')

như trong

  Namee := 'mohsen';
  Family := 'dolatshah';
  aSQLText:= 'INSERT INTO b_tbl(Name,Family) VALUES (''%s'',''%s'')';
  aSQLCommand := Format(aSQLText,[namee,family]);

Trong phiên bản đầu tiên của câu trả lời của tôi, tôi đã giải thích cách khắc phục sự cố của bạn bằng cách "nhân đôi" các dấu ngoặc kép trong Sql mà bạn đang cố gắng xây dựng, bởi vì đối với tôi, có vẻ như bạn đang gặp khó khăn khi thấy (theo nghĩa đen) điều gì không ổn với cái gì. bạn đã làm.

Một cách thay thế (và tốt hơn) để tránh vấn đề của bạn (và cách mà tôi luôn sử dụng trong đời thực) là sử dụng QuotedStr() hàm số. Mã tương tự sau đó sẽ trở thành

aSQLText := 'INSERT INTO b_tbl (Name, Family) VALUES (%s, %s)'; 
aSQLCommand := Format(aSQLText, [QuotedStr(namee), QuotedStr(family)]);

Theo Trợ giúp trực tuyến:

Ý nghĩa của "lặp đi lặp lại" là những gì tôi đã gọi là "nhân đôi". Tại sao điều đó lại quan trọng và lý do chính mà tôi sử dụng QuotedStr là để tránh Sql db-engine gây ra lỗi khi giá trị bạn muốn gửi chứa một ký tự trích dẫn duy nhất như trong O'Reilly .

Hãy thử thêm một hàng có chứa tên đó vào bảng của bạn bằng MySql Workbench và bạn sẽ hiểu ý tôi.

Vì vậy, việc sử dụng QuotedStr không chỉ làm cho việc xây dựng các câu lệnh SQL dưới dạng chuỗi trong mã Delphi ít bị lỗi hơn, mà còn tránh được các vấn đề ở back-end.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ DAYOFMONTH () - MySQL

  2. MacOS không thể khởi động MySQL Server

  3. Chỉ mục cuối cùng của một chuỗi con nhất định trong MySQL

  4. laravel 5.6 chèn dữ liệu json số lượng lớn

  5. Từ khóa KEY có nghĩa là gì?