>  Q&A  >  본문

NextJS Mysql은 phpmyadmin을 통해 잘 실행되지만 API를 통해 쿼리할 때 문제가 있습니다.

<p>제목에서 알 수 있듯이 내 SQL 코드는 phpmyadmin에서는 작동하지만 API에서 요청할 때는 작동하지 않습니다. 내 API는 mysql 패키지를 사용합니다: </p> <pre class="brush:php;toolbar:false;">npm i mysql</pre> <p>SQL 코드:</p> <pre class="brush:php;toolbar:false;">BEGIN; INSERT INTO 주소(주소, 우편번호, 시, 주, 국가) VALUES('무엇', 69420, '무엇', '무엇', '무엇'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO 회사(소유자, org_nr, 이름) VALUES('someid', 133769420, '뭔가'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO 사용자(회사, 회원, 관리자) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails(배송 주소, 회사, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, '뭔가', '뭔가'); COMMIT;</pre> <p>이것은 phpmyadmin에서는 완전히 정상적인 현상입니다.</p> <p>내가 사용하는 방법은 다음과 같습니다.</p> <pre class="brush:php;toolbar:false;">db.query( `시작; INSERT INTO 주소(주소, 우편번호, 도시, 주, 국가) VALUES('Something', 69420, 'Something', 'Something', 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO 회사(소유자, org_nr, 이름) VALUES('Something', 133769420, 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_company_id; INSERT INTO 사용자(회사, 회원, 관리자) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails(배송 주소, 회사, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something'); 커밋;`, (오류, 결과) => { if (err) return res.status(422).json(err); res.status(200).json(결과)를 반환합니다. } );</pre> <p>显示的错误是:</p> <pre class="brush:php;toolbar:false;">{"code":"ER_PARSE_ERROR","errno":1064,"sqlMessage":"SQL 구문에 오류가 있습니다. ; 'INSERT INTO 주소(주소, 우편번호, 도시, 주, 국가) 근처에서 사용할 올바른 구문에 대해서는 MariaDB 서버 버전에 해당하는 설명서를 확인하세요. VALUES('Ve...' at line 1","sqlState": "42000","index":0,"sql":"BEGIN; INSERT INTO 주소(주소, 우편번호, 도시, 주, 국가) VALUES('Something', 69420, 'Something', 'Something' , 'Something'); SELECT LAST_INSERT_ID() INTO @mysql_address_id; INSERT INTO 회사(소유자, org_nr, 이름) VALUES('someid', 133769420, 'Something') INTO @mysql_company_id; , 회원, 관리자) VALUES(@mysql_company_id, 'someid', 1); INSERT INTO CompanyDetails(shippingAddress, company, shortName, ourReference) VALUES(@mysql_address_id, @mysql_company_id, 'Something', 'Something');" }</pre> <p>유인 지식도 这可能是什么原因引起的吗?任何帮助将不胜感激 :)</p>
P粉549986089P粉549986089420일 전393

모든 응답(1)나는 대답할 것이다

  • P粉037450467

    P粉0374504672023-08-27 10:14:45

    여기서 해결책을 찾았습니다: https://stackoverflow.com/a/23267627/13214923 node-mysql은 기본적으로 다중 명령문을 지원하지 않는 것으로 나타났습니다.

    추가하여

    으아악

    연결 풀 구성에 추가했더니 마술처럼 작동했어요 :)

    회신하다
    0
  • 취소회신하다