내 간단한 varchar 필드에 "?"가 포함되어 있으면 TOAD에서 MySQL 스크립트 (삽입)를 실행하고 있습니다. 또는 ":"라고 입력하면 TOAD는 변수 (@ f0)를 바인딩하도록 요청합니다. 및 ":"LITERALLY 문장에서.왜 "?"와 같은 문자가 포함 된 단순한 varchar 삽입이 필요합니까? 및 ":"MySQL에서 바인딩 변수를 묻는?
나는 = 'PIPES_AS_CONCAT'SET의 sql_mode에 필요 의 모든 인스턴스를 대체 "?" 및 ":" to || CHAR (63) ||을 유효하게 설정하십시오. 내가 "\?" 또는 "\ :" 작동하지 않는 다른 특수 문자를 이스케이프 처리하는 것과는 다른 방식입니다.
SET sql_mode = 'PIPES_AS_CONCAT';
INSERT INTO `specs` (`ID`, `ParentProductsID`, `SpecsGroup`, `SpecsSubGroup`, `SpecsSubGroup2`, `SpecsText`) VALUES (1289, 27, 'What\'s in the box' || CHAR(63) || '', '', '', 'User guide');
쉬운 방법이 있나요 :
INSERT INTO `specs` (`ID`, `ParentProductsID`, `SpecsGroup`, `SpecsSubGroup`, `SpecsSubGroup2`, `SpecsText`) VALUES (1289, 27, 'What\'s in the box?', '', '', 'User guide');
이 문장은 내가 더 오래 잘하지만 어떤 작품과 같이하지 않는 한, 변수 @의 F0를 결합하도록 요구?
참고 : TOAD를 MySQL 용으로 사용하고 있습니다. 다른 SQL Editor에 대해서는이 문제가 발생할 수 있습니다.
업데이트 : 이것은 PHPMyAdmin에서 시도했을 때 제대로 작동하며 "?" 말 그대로 모든 삽입물에.
는 쉬운 방법이 있나요? 예,'PDO' 또는'MySQLi' ** 준비 문구 **를 사용하십시오. MySQL을 직접 사용하는 경우 Prepared Statements를 꺼야합니다. * **) – Martin
json에서 SQL을 얻으면 프로그래밍 언어를 사용하여 데이터베이스에 액세스하므로 모든 논리를 수행 할 수 있습니다. 준비된 문 사용하기 – Jens
또한 API를 통해 SQL 문을 보내고 실행하는 것은 매우 위험합니다. – Jens