2012-01-23 2 views
0

MySQL은 이스케이프 된 문자열에 1064를 제공합니다.이스케이프 된 문자열의 MySQL 구문 오류

$date is set above. 
$article_clean = mysqli_real_escape_string($dbc,$article); 
$guid_clean= mysqli_real_escape_string($dbc,$guid_clean); 
$pub_date_clean = mysqli_real_escape_string($dbc,$pub_date); 
$title_clean = mysqli_real_escape_string($dbc,$title); 
$query = "INSERT INTO blog_post (date,article,link,pub_date,title) VALUES ('$date',$article_clean','$guid_clean','$pub_date_clean','$title_clean')"; 

mysqli_query($dbc, $query); 

왜?

+3

없음을''$의 article_clean 감사 @piotrm – piotrm

+0

전에 !!!! 나는 몇 시간 후에 쉬어야한다고 생각한다. – Cjueden

+0

mysqli를 사용한다면 준비된 명령문을 사용하지 않는 것이 좋습니다. – Mike

답변

1

당신이 하나를 쿼리 라인을 다시 작성, 작은 따옴표를 놓친 : -

$query = "INSERT INTO blog_post (date,article,link,pub_date,title) VALUES ('$date','$article_clean','$guid_clean','$pub_date_clean','$title_clean')"; 
0

이러한 문제를 쉽게 해결할 수있는 더 나은 PHP IDE를 사용해보십시오.

+0

나는 이클립스를 지금 사용하고있다. 의견 있으십니까? – Cjueden

+0

Eclipse가 상당히 좋습니다. 지금 PHPStorm을 사용하고 있습니다. 평가판을 사용할 수 있습니다, 당신은 그것을 시도 줄 수 있습니다. – alxbrd

1
$query = "INSERT INTO blog_post (blah blah) VALUES ('$date',$article_clean', ...)"; 
                  ^

이 인수는 따옴표가 없습니다. 하나 추가해야합니다.

은 그 꼭대기에,이 문은 의심스러운 :

$guid_clean = mysqli_real_escape_string ($dbc, $guid_clean); 

모든 다른 사람들이 청소를 생산하는 "부정"버전에 작용한다.

내가 말하는대로
$guid_clean = mysqli_real_escape_string ($dbc, $guid); 

, 즉 반드시 경우는 아니지만 나는 확인을 확인할 것 : 이미 어떻게 든 guid_clean을 설정 한 않는 한, 그것은 아마이 있어야한다.

+0

그래, 이미'$ guid_clean'을 설정했습니다. – Cjueden