아래 코드 조각에 표시된 대로 PHP를 사용하여 연속 MYSQL 문을 실행하려고 합니다(한 행을 다른 행으로 복사하고 tmp 테이블을 통해 ID 이름을 바꿉니다).
중복된 구문 오류 메시지가 나타납니다. 나는 수많은 반복을 시도했습니다. 코드는 PHP 매뉴얼과 SO에 대한 기타 mysql 질문(php 차원 제외)에서 연구한 코드와 유사합니다.
내 PHP 구문이 잘못된 이유를 설명해 줄 수 있는 사람이 있나요?
으아악PHP 메시지 반환:
테이블 생성 오류: SQL 구문에 오류가 있습니다. "UPDATE tmp SET id=100 WHERE id = 1INSERT INTO event_categoriesBU SELECT * FROM t" 근처의 라인 1에 대한 MariaDB 서버 버전 설명서를 확인하세요. 사용할 올바른 구문
한 번에 여러 쿼리를 실행하지 마세요. 이러한 작업 중 하나의 성공 여부는 다른 모든 작업이 올바르게 수행되는지에 따라 달라지는 경우가 많습니다. 따라서 문제가 발생하더라도 아무런 문제가 없는 것처럼 계속 진행할 수는 없습니다.
이렇게 할 수 있습니다:
으아아아잊지 마세요 예외를 활성화하여 쿼리 오류가 발생하면 상황이 통제 불능 상태가 되는 대신 프로세스가 중지됩니다.
당신은 돈
multi_query
的原因是该函数不支持占位符值。如果您需要在此查询中引入某种用户数据,则需要使用bind_param
을 사용하여 이 작업을 안전하게 수행하세요. 자리 표시자 값이 없으면 SQL 삽입 오류에 노출되며, 그 중 하나는 전체 애플리케이션을 취약하게 만들기에 충분합니다.주의할 점은
mysqli
更加灵活和适应性强,因此,如果您没有在mysqli
보다 PDO에 너무 많이 투자한다면 전환을 고려해 볼 가치가 있다는 것입니다.