Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieznana kolumna na liście pól

To dlatego, że

VALUES (%s,%s)

nie otacza imienia i zawartości zmiennej rodziny cudzysłowami. Dlatego twój back-endowy silnik SQL myśli, że twój mohsen to nazwa kolumny, a nie wartość.

Zamiast tego użyj np.

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

jak w

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

W pierwotnej wersji mojej odpowiedzi wyjaśniłem, jak rozwiązać problem, „podwajając” pojedyncze cudzysłowy w Sql, który próbowałeś zbudować, ponieważ wydawało mi się, że masz trudności z dostrzeżeniem (dosłownie), co jest nie tak z czym robiłeś.

Alternatywnym (i lepszym) sposobem uniknięcia problemu (i tym, którego zawsze używam w prawdziwym życiu) jest użycie QuotedStr() funkcjonować. Ten sam kod stałby się wtedy

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

Według pomocy online:

Przez „powtórzenie” rozumie się to, co nazwałem „podwajaniem”. Dlaczego to ważne, a głównym powodem, dla którego używam QuotedStr, jest uniknięcie błędu mechanizmu bazy danych SQL, gdy wartość, którą chcesz wysłać, zawiera pojedynczy znak cudzysłowu, jak w O'Reilly .

Spróbuj dodać wiersz zawierający tę nazwę do swojej tabeli za pomocą MySql Workbench, a zobaczysz, o co mi chodzi.

Tak więc użycie QuotedStr nie tylko sprawia, że ​​konstruowanie instrukcji SQL jako ciągów w kodzie Delphi jest mniej podatne na błędy, ale także pozwala uniknąć problemów na zapleczu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź najbliższą lokalizację według kodu pocztowego/kodu pocztowego?

  2. Uzyskaj dane z bazy danych mysql za pomocą php i jquery ajax

  3. Jaki jest odpowiednik MySQL funkcji CHOOSE() w SQL Server?

  4. PHP Jak zwrócić datetime(6) z Mysql?

  5. Jak uniknąć niepotrzebnych/śmieciowych znaków podczas odczytywania danych z wielu języków?