이 두 쿼리를 통해 준비된 명령문을 사용하여 데이터베이스에 여러 값을 삽입하려고 하는데 두 쿼리 모두 실패하고 그 중 하나가 반환됩니다.
잡히지 않은 오류: 정의되지 않은 메서드 mysqli_stmt::bindValue() 호출
첫 번째 코드 또는
잡히지 않은 ValueError: mysqli_stmt::execute(): 매개변수 #1($params) 목록 배열이어야 합니다
두번째. list
而不是 array
를 입력하면
문법 오류
참고모든 변수, 테이블 및 열 이름은 단순화된 변형입니다.
비슷한 질문을 많이 보았지만 그 중 어느 것도 내 질문에 대답해 주지 않았습니다. 이 "반복"도 아닙니다.
해결책이나 대안이 있는 사람이 있나요?
여기 두 가지 코드가 있습니다:
으아아아if(isset($_POST['ID'], $_POST['atr1'])){ $sql = $db -> prepare("INSERT INTO some_table (ID, atr_place) VALUES (':fir', ':sec')"); $sql -> bindValue(':fir', $_POST['ID'],); $sql -> bindValue(':sec', $_POST['atr1'],); $sql -> execute(); }
오류 메시지에서 알 수 있듯이 mysqli a> 라이브러리를 사용하여 데이터베이스와 통신하고 있습니다. 그러나 귀하의 코드는 완전히 다른 라이브러리인 PDO를 사용하는 예제를 기반으로 한 것 같습니다. 일부 함수는 표면적으로 유사한 이름을 가지고 있지만 실제로는 API와 요구 사항이 다릅니다.
예를 들어, 일부 API 차이점은 다음과 같습니다.
?
이 코드는 mysqli와 함께 사용해야 합니다:
PHP 8.1 이상을 사용하는 경우:
으아악그렇지 않은 경우:
으아악