반응형
포맷 방법 BEGIN...SQL과 함께 PDO를 사용하는 END 문?
잘 작동합니다.
...
$sql = "INSERT INTO person (`name`, `age`)
VALUES ('John', 34);";
$stmt = $conn->prepare($sql);
...
그러나 이 경우 오류가 발생합니다.
...
$sql = "BEGIN
INSERT INTO person (`name`, `age`)
VALUES ('John', 34);
END;";
$stmt = $conn->prepare($sql);
...
오류는 다음과 같습니다.
SyntaxError: unterminated string literal
보다 구체적으로 다음과 같은 사항을 제공합니다.
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 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 person (`name`, `age`)
저는 그 시작이...이 작위적인 예에서는 END가 불필요하지만 왜 작동하지 않습니까?
어떤 도움이라도 주셔서 대단히 감사합니다.
PDO에서는 다른 API와 마찬가지로 별도의 API 호출을 사용하여 별도의 쿼리를 실행합니다.
END 키워드가 말이 안되고 커밋을 의미한다고 가정한다면,
$conn->query("BEGIN");
$conn->query("INSERT INTO person (`name`, `age`) VALUES ('John', 34)");
$conn->query("COMMIT");
하지만, 당신은 기억해야 합니다.
- 단일 쿼리에 대해 트랜잭션을 실행하는 것은 의미가 없습니다.
- 준비된 문장에 데이터를 바인딩하지 않으면 사용할 의미가 없습니다.
언급URL : https://stackoverflow.com/questions/39772864/how-do-you-format-begin-end-statements-using-pdos-with-sql
반응형
'prosource' 카테고리의 다른 글
다중 인덱스 팬더에서 선택 (0) | 2023.10.20 |
---|---|
파일 변경 시 노드 다시 시작 (0) | 2023.10.20 |
DateTime 간의 차이.구문 분석 및 변환.현재 시간까지? (0) | 2023.10.20 |
Powershell에서 사용자 지정 개체 배열을 문자열 배열로 변환 (0) | 2023.10.20 |
다른 디브에 디브 센터를 지정하려면 어떻게 해야 합니까? (0) | 2023.10.20 |