데이터베이스에 새 항목을 추가하기 위해 서버에서 다음 명령을 실행하고 있습니다.
mysql --useruser --password='password' --database='mydatabase' --execute='INSERT INTO `artist` (`artist_id`, `artist_name`, `name_sorted`, `Discogs_Real_Name`, `Discogs_Search_Name`, `url`, `current_rank`, `previous_rank`, `last_rank_change_date`, `Discogs_ID`, `Discogs_IMG_URL`, `discogs_file_jpg`, `discogs_file_png`, `discogs_file_icon`, `Discogs_Profile`, `musical_id`, `artist_id_new`, `artist_id_feat`) VALUES ('"'$artist_id'"', '"'$discogs_name'"', '"'$discogs_name'"', '"'$discogs_name'"', '"'$discogs_search_name'"', '', '0', '0', '2020-08-28', '"'$discogs_id'"', '"'$discogs_image_url'"', '"'$discogs_new_filename_jpg'"', '', '', '', '"'$musical_id'"', '1', '')';
명령을 실행한 후 다음 오류 메시지가 나타납니다.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 0, 0, 2020-08-28, '17546', ' https://img.discogs.com/jWSXBLWwmOog3YRLDtGQ_RK95x' at line 1
답변1
이스케이프 처리하지 않고 작은따옴표 안에 작은따옴표를 넣을 수 없습니다. 작은따옴표 내에서는 $musical_id와 같은 변수가 해석되지 않습니다.