尝试UPDATE段落后MYSQL错误

时间:2012-05-09 13:12:20

标签: mysql sql syntax-error

我有非常具体的问题,我找不到问题。我尝试更新一些文本,我收到一个错误:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'=附近使用正确的语法   科孚岛的复活节被认为是格力在第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;

每个变量都有效,我试着回应,没有任何问题。如果文本中只有一个insertphotos(或零),则它可以工作。虽然我有不止一个,但我得到了这个错误。我不知道为什么?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

插入的".$string."周围没有引号。

此外,我看不到对mysql_real_string_escape()的电话。为什么不呢?

答案 2 :(得分:1)

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

检查您的请求

答案 3 :(得分:0)

在将$string放入查询之前,您需要将其转义。

$string包含'字符,会导致查询错误。