Google Login with Google

# MySQL Unknown column 에러 해결 방법 (컬럼 없음 오류 완벽 정리)

## 1. 문제 상황 설명

MySQL을 사용하다 보면 다음과 같은 오류를 자주 접하게 됩니다.

```
Unknown column 'media' in 'field list'
Unknown column 'media_type' in 'field list'
```

이 오류는 쿼리를 실행할 때 **존재하지 않는 컬럼을 참조할 경우** 발생합니다.
특히 PHP와 MySQL을 함께 사용할 때 자주 나타나는 대표적인 오류입니다.

---

## 2. 원인 분석

Unknown column 오류는 주로 다음과 같은 원인에서 발생합니다.

### (1) 컬럼이 실제로 존재하지 않는 경우

테이블에 해당 컬럼이 없는데 쿼리에서 사용한 경우입니다.

### (2) 컬럼명 오타

예: `medai`, `meida_type` 같은 단순 오타

### (3) 테이블 구조 변경 후 반영 안됨

DB에서는 컬럼을 삭제했는데 코드에서는 그대로 사용하는 경우

### (4) 다른 테이블을 조회 중인 경우

JOIN 또는 테이블 지정이 잘못된 경우

### (5) 백틱(`) 또는 따옴표 문제

컬럼명을 문자열로 잘못 인식하는 경우

---

## 3. 해결 방법

다음 순서대로 확인하면 대부분 해결됩니다.

### ✔ 1. 테이블 구조 확인

```sql id="m1k3pa"
DESCRIBE 테이블명;
```

또는

```sql id="x82mza"
SHOW COLUMNS FROM 테이블명;
```

👉 실제 컬럼 존재 여부 확인

---

### ✔ 2. 컬럼명 정확히 수정

```sql id="v91cpt"
-- 잘못된 예
SELECT media FROM posts;

-- 올바른 예
SELECT image FROM posts;
```

---

### ✔ 3. 컬럼 추가 (필요한 경우)

```sql id="d92kql"
ALTER TABLE posts ADD media VARCHAR(255);
```

---

### ✔ 4. PHP 코드와 DB 동기화

DB 컬럼과 PHP 코드가 동일해야 합니다.

```php id="p3z81k"
$sql = "INSERT INTO posts (title, content, media) VALUES (?, ?, ?)";
```

👉 DB에 media 컬럼이 반드시 있어야 함

---

### ✔ 5. 테이블명 확인

```sql id="a91kdd"
SELECT * FROM post; -- ❌ 잘못된 테이블명
SELECT * FROM posts; -- ✅ 올바른 테이블명
```

---

## 4. 코드 예시

다음은 오류가 발생하는 코드와 해결된 코드 비교입니다.

### ❌ 오류 발생 코드

```php id="c91zmx"
$sql = "INSERT INTO posts (title, content, media_type) VALUES (?, ?, ?)";
```

👉 media_type 컬럼이 없으면 오류 발생

---

### ✅ 해결 코드 (방법 1: 컬럼 추가)

```sql id="q12lsk"
ALTER TABLE posts ADD media_type VARCHAR(50);
```

---

### ✅ 해결 코드 (방법 2: 코드 수정)

```php id="w92kpl"
$sql = "INSERT INTO posts (title, content) VALUES (?, ?)";
```

---

## 5. 정리

Unknown column 오류는 대부분 단순하지만 자주 발생하는 문제입니다.

* 컬럼 존재 여부 확인
* 컬럼명 오타 체크
* DB와 코드 일치 여부 확인
* 테이블명 정확히 사용

이 네 가지만 확인하면 거의 모든 경우 해결할 수 있습니다.

---

💡 추가 팁
개발 중에는 테이블 구조를 자주 변경하기 때문에
**DB 스키마와 코드 동기화**를 항상 유지하는 것이 중요합니다.
← Back to list
💬 Comments (1)
전혜주
전혜주 Apr 27, 2026 · 12:31
DB 스카마와 코드가 일치하는지 여부를 항상 더블체그 하셔야 합니다. 에러 자주 일어납니다. 꼭 명심 또 명심!