반응형
NextJS Myslog INSERT는 phpmyadmin을 통한 명령에서는 작동하지만 api의 쿼리에서는 작동하지 않습니다.
제목에서 알 수 있듯이, 내 SQL 코드는 phpmyadmin에서 작동하지만 api의 요청에는 작동하지 않습니다.myapi는 mysql 패키지를 사용합니다.
npm i mysql
SQL 코드:
BEGIN;
INSERT INTO Addresses (address, postal_code, city, state, country)
VALUES('Something', 69420, 'Something', 'Something', 'Something');
SELECT LAST_INSERT_ID() INTO @mysql_address_id;
INSERT INTO Companies (owner, org_nr, name)
VALUES('someid', 133769420, 'Something');
SELECT LAST_INSERT_ID() INTO @mysql_company_id;
INSERT INTO Users (company, member, administrator)
VALUES(@mysql_company_id, 'someid', 1);
INSERT INTO CompanyDetails (shippingAddress, company, shortName, ourReference)
VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something');
COMMIT;
그리고 이것은 phpmyadmin에서 완전히 잘 작동합니다.
다음을 사용하여 함수를 호출합니다.
db.query(
`BEGIN; INSERT INTO Addresses (address, postal_code, city, state, country) VALUES('Something', 69420, 'Something', 'Something', 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO Companies (owner, org_nr, name) VALUES('Something', 133769420, 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO Users (company, member, administrator) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); COMMIT;`,
(err, result) => {
if (err) return res.status(422).json(err);
return res.status(200).json(result);
}
);
표시되는 오류는 다음과 같습니다.
{"code":"ER_PARSE_ERROR","errno":1064,"sqlMessage":"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO Addresses (address, postal_code, city, state, country) VALUES('Ve...' at line 1","sqlState":"42000","index":0,"sql":"BEGIN; INSERT INTO Addresses (address, postal_code, city, state, country) VALUES('Something', 69420, 'Something', 'Something', 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO Companies (owner, org_nr, name) VALUES('someid', 133769420, 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO Users (company, member, administrator) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails (shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); COMMIT;"}
이것이 무엇 때문에 발생할 수 있는지 아는 사람이 있습니까?어떤 도움이든 감사합니다 :)
여기서 해결책을 찾았습니다. https://stackoverflow.com/a/23267627/13214923 노드 프로토콜은 기본적으로 여러 문을 지원하지 않습니다.
을 추가하여
{multipleStatements: true,}
내 풀 구성에 그것은 매력적으로 작동했습니다 :)
언급URL : https://stackoverflow.com/questions/71698097/nextjs-mysql-insert-works-with-commands-through-phpmyadmin-but-not-with-query-fr
반응형
'programing' 카테고리의 다른 글
| iOS용 Firebase, GoogleService-Info.plist 속성 "IS_ANALYATIC_ENABLED"가 "아니오"로 설정됨 (0) | 2023.06.21 |
|---|---|
| JDBC 배치 삽입 예외 처리 (0) | 2023.06.21 |
| 병합 사용 중...source.id 과 target.id 사이의 매핑을 가져오는 출력 (0) | 2023.06.21 |
| TSQL에서 증분 날짜의 결과 집합 생성 (0) | 2023.06.21 |
| '#selector'는 Objective-C에 노출되지 않는 방법을 말합니다. (0) | 2023.06.21 |