2014-12-03 2 views
1

테이블 필드에 쉼표로 구분 된 값을 간단하게 삽입하려고합니다. 그러나 왜 작동하지 않는지는 알 수 없습니다.PHP 쉼표로 구분 된 값이 PHP에 삽입되지 않았습니다.

<?php 

$array = array('1', '2', '3'); 
$comma_separated = implode(",", $array); 

echo $comma_separated; 

$sql = "INSERT INTO like(user_id,like_data) 
VALUES ('1','$comma_separated')"; 

if ($connection->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $connection->error; 
} 

?> 

여기에서 like_data 필드는 varchar를 가져 왔습니다.

SQL 구문 오류가 발생했습니다.

+4

저는'like'가 예약어라고 생각합니다! 그래서 다음과 같이 입력하십시오 : INSERT INTO \'like' – Rizier123

+0

그것은 데이터베이스 연결에서 왔습니다. 처럼 $ connection = mysqli ("host", "user", "pass", "db"); –

답변

2

당신은`LIKE을 SQL에 예약 된 단어로 써야합니다! 그래서 그것은 다음과 같이 보일 것입니다 :

INSERT INTO `like` 
+0

당신이 먼저 문제를 발견하고 답이 늦었고 질문이 닫힌 경우에도 코멘트에 넣었 기 때문에 투표하셨습니다 : –

+0

@Hanky ​​웃 Panky 감사합니다 : DI는 항상 중복으로 질문을 표시하는 것을 잊어 버렸습니다. ! 그리고 내가 대답하면 나는 자아를 묻는 것과 같다. 잠깐,이 질문은 이전에 묻지 않았다. (이것에 관해서는 내 자신을 더 기억해야한다) – Rizier123

1

LIKE은 MySQL 예약어입니다.

MySQL reserved Keywords

솔루션 :

1) 테이블 이름으로 like을 사용하지 마십시오.

2) like 전에 데이터베이스 이름을 추가 dbName.like

3) 등을 상대로 역 따옴표를 (`) 추가 :

INSERT INTO `like`(user_id,like_data) VALUES ('1','$comma_separated') 
+0

하하 !! 오 !! 고맙습니다. 이것은 단지 무의식입니다. –

1

당신은 테이블 이름

의 키워드를 사용하지 않아야합니다 당신이 그들을 사용하는 경우이 같은 backticks에 그들을 가지고있다.

INSERT INTO `like` (user_id,like_data) VALUES ('1','$comma_separated')