2012-05-09 3 views
0

매우 구체적인 질문이 있는데, 문제를 찾을 수 없습니다. 나는 텍스트를 업데이트하려고, 나는 오류가 발생 :단락을 UPDATE 한 후 MYSQL 오류가 발생했습니다.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= Easter in Corfu is considered to be the most magnificent celebration in Gree' at line 1

내 코드 :

$arr = explode("|", $id, 2); 
$id = $arr[0]; 
$part = $arr[1];            // in which part of a splited paragraph currently we are 
$row = mysql_fetch_array(mysql_query("SELECT * FROM paragraph WHERE id=$id")) or die(mysql_error());  
$search = 'insertphotos';          // the string to search for  
$string = $row['text_content'];         // the string to search 
$repetition = substr_count($string, $search);     // how many insertphotos exist in paragraph 
if ($repetition > $part){ 
    if ($part > 1) 
     $offset = $part - 1;         // how many times to search for word insertphotos 
    else 
     $offset = $part; 
    $start = strposOffset($search, $string, $offset) + 13;  // find position of '$offset' occurance of search string 
    $offset++; 
    $end = strposOffset($search, $string, $offset) - $start - 1; 
    $string = substr_replace($string, $value, $start, $end); 
}else if ($repetition == $part){ 
    $offset = $part;          // how many times to search for word insertphotos 
    $start = strposOffset($search, $string, $offset) + 13;  // find position of '$offset' occurance of search string 
    $string = substr_replace($string, $value, $start, strlen($string)); 
}else 
    $string = "<p>".$value."</p>"; 
//$value = "<p>".$value."</p>"; 
mysql_query("UPDATE paragraph SET text_content=".$string." WHERE id='$id'") or die(mysql_error()); 
//mysql_query("INSERT INTO paragraph (header, text_content, menu_id, sequence) VALUES('<h2>Bella Vista Hotel h2 - Please Change Me</h2>', $string, '15', '2')") or die(mysql_error()); 
mysql_close($link);  
//echo "INSERT PHOTOS REPEATS " .$repetition ." ID =".$id ." PART = ".$part ." WE SEARCH, START AT " .$start ." FINISH AT " .$end ." SEARCH FOR OFFSET = " .$offset ." FINAL STRING " .$string; 
echo $string; 

모든 변수 작품, 나는 반향 시도를, 더는 문제가 없다. 텍스트에 삽입 사진 (또는 제로)이 하나만 있으면 작동합니다. 하나 이상을 가지고있는 동안이 오류가 발생합니다. 왜 그런 단서가 없습니까?

답변

3

텍스트 문자열은 인용되지 않습니다.

mysql_query("UPDATE paragraph SET text_content='".mysql_real_escape_string($string)."' WHERE id='$id'") or die(mysql_error()); 

당신은 또한 당신의 입력을 탈출해야합니다 http://php.net/manual/en/function.mysql-real-escape-string.php

+0

! :) 고맙습니다! 나는이 페이지를 좋아한다! mysql_real_escape_string 당신이 편지를 놓쳤습니다. – user1384668

0

쿼리에 넣기 전에 $string을 탈출해야합니다.

$string에는 ' 문자가 포함되어있어 검색어가 잘못되었습니다.

1
mysql_query("UPDATE paragraph SET text_content=".$string." WHERE id='$id'") 
mysql_query("UPDATE paragraph SET text_content='".$string."' WHERE id='".$id"') 

요청 확인

그것은이 작동
관련 문제