in order to debug:// ----------- start ---------------
<?php
$mode = 1;
$clsid = 2;
$mp = 3;$sql = "update cdb_posts set subject='<a href=' . '"' . 'article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . '"' where pid='$pid'";echo $sql;echo mysql_error();
?>
// ------------- end ---------------Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/html/test.php on line 6

解决方案 »

  1.   

    $sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . \" ' where pid='$pid'";
      

  2.   

    对了,还要再加上原SQL语句中的$subject变量,最终这样写对吗$sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . \"/a>$subject ' where pid='$pid'";
      

  3.   

    现在的情况是这样:原句:
    $sql = "update cdb_posts set subject='$subject' where pid='$pid'";第一次修改后的:
    $sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=$mode&clsid=$clsid&mp=$mp\">$subject</a>' where pid='$pid'";
    // 此句可以正常工作第二次修改后的:
    $sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=$id\">$subject</a>' where pid='$pid'";
    // 这句的问题是,$subject不能正常显示,其他方面都正常,为什么呢,怎么解决呢
      

  4.   

    上面那句应该没问题
    这样写会更好看一些
    $sql = sprintf("update cdb_posts set subject='%s' where pid='%d',
                "<a href='http://www.mydomainname/file.php?id=$id'>$subject</a>",
                $pid);
      

  5.   

    少写了"号
    "
    $sql = sprintf("update cdb_posts set subject='%s' where pid='%d'",
                "<a href='http://www.mydomainname/file.php?id=$id'>$subject</a>",
                $pid);
      

  6.   

    ice_berg16(寻梦的稻草人),这样写:$sql = sprintf("update cdb_posts set subject='%s' where pid='%d'",
                "<a href='http://www.mydomainname/file.php?id=$id'>$subject</a>",
                $pid);$subject不能解析了 怎么改呢
      

  7.   

    比如,如果$subject = '新闻标题',最后网页上应该显示“[新闻]新闻标题”,而现在显示的是“新建信息……”(“新建信息……”是默认的)
      

  8.   

    $sql = "update cdb_posts set subject='<a href=' . '"' . 'article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . '"' where pid='$pid'";
    这句语句有问题
    改成:
    $sql = "update cdb_posts set subject='<a href="."\"article_list.php?mode=". $mode."&clsid=".$clsid."&mp=".$mp."\"' where pid='$pid'";
      

  9.   

    $sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=".$id."\">".$subject."</a>' where pid=".$pid;
      

  10.   

    $subject  ,$pid ,$id 这些都是变量,你的写法是不能转义的
      

  11.   

    好的,ymanh(珩),我试试看,但$sql = "update cdb_posts set subject='$subject' where pid='$pid'";可以,我觉得一样呢
      

  12.   

    $sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=".$id."\">".$subject."</a>' where pid=".$pid;结果还是一样```  -_-
      

  13.   

    $sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=$mode&clsid=$clsid&mp=$mp\">$subject</a>' where pid='$pid'";
      

  14.   

    养成个习惯用mysql_escape_string吧,安全,程序也好读些。
      

  15.   

    iisbsd(墙头草),我是这样做的:$sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=$id\">$subject</a>' where pid='$pid'";
    $sql1 = mysql_escape_string($sql);   // mysql_real_escape_string($sql);
    mysql_query($sql1);但还是不行
      

  16.   

    汗, 狂暈
    建議樓主把 
    $a='"'; 
    $b="'";然後,把SQL裏面的單雙引號用 $a $b 代替.
      

  17.   

    scsjs(闪电回归),如下这样后,结果还是一样 -_-$link1 = "<a href=\"http://www.mydomainname/file.php?id=$id\">$subject</a>";
    $sql = "update cdb_posts set subject='$link1' where pid='$pid'";
      

  18.   

    $link1 = "<a href='http://www.mydomainname/file.php?id=$id'>$subject</a>";
    $link1 = mysql_escape_string($link1);
    $sql = "update cdb_posts set subject='$link1' where pid='$pid'";
    echo $sql;
    試一試這樣.如果還不行的話,看看輸出的 $sql 是什麼, 把 php.ini 中 顯示錯誤的選項開起來.樓主是不是在改 dz 論壇?
      

  19.   

    谢谢 scsjs(闪电回归)!我试试看
    是在改dz论坛
      

  20.   

    scsjs(闪电回归),还是不行我打印出来看看