1. 문제 상황 설명
PHP에서 MySQL을 사용할 때 다음과 같은 오류가 발생할 수 있습니다.
Call to a member function bind_param() on bool
mysqli::prepare(): Failed to prepare statement
이 오류는 prepare()가 실패했을 때 발생합니다.
2. 원인 분석
(1) SQL 문법 오류
쿼리 자체가 잘못된 경우
(2) 존재하지 않는 컬럼
Unknown column 오류와 연결됨
(3) 테이블 이름 오류
테이블명이 틀린 경우
(4) DB 연결 실패
$conn 자체가 정상적이지 않은 상태
3. 해결 방법
✔ prepare 결과 확인
$stmt = $conn->prepare($sql);
if (!$stmt) {
die("prepare 실패: " . $conn->error);
}
✔ SQL 직접 테스트
phpMyAdmin에서 직접 실행해보기
✔ 컬럼명 확인
SHOW COLUMNS FROM 테이블명;
4. 코드 예시
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die($conn->error);
}
$stmt->bind_param("i", $id);
$stmt->execute();
5. 정리
prepare() 실패 → SQL 문제일 가능성 높음
반드시 에러 출력으로 원인 확인
DB 구조와 코드 일치 필요
💡 prepare 오류는 대부분 단순 오타에서 발생한다.
Login with Google