关于双引号和单引号多层嵌套

i33333 2006-05-19 08:02:51
原SQL语句:
$sql = "update cdb_posts set subject='$subject' where pid='$pid'";

有一个变量是:
$backurl = "article_list.php?mode=" . $mode . "&clsid=" . $clsid. "&mp=". $mp;


现在要改变SQL语句,使插入的字符串成为一个链接:
$sql = "update cdb_posts set subject='<a href=' . '"' . 'article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . '"' where pid='$pid'";

但提示错误:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING


这个错误怎么解决呢?这个SQL语句该怎么写呢?
...全文
1605 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
玄之丞 2006-05-22
  • 打赏
  • 举报
回复
$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 論壇?
aniude 2006-05-22
  • 打赏
  • 举报
回复
一般会在双引号里面嵌套单引号
iisbsd 2006-05-22
  • 打赏
  • 举报
回复
把要链接的路径改为了相对路径,然后就好了
===
这和上面讨论的问题怎么好像没关系啊?
i33333 2006-05-22
  • 打赏
  • 举报
回复
scsjs(闪电回归),如下这样后,结果还是一样 -_-

$link1 = "<a href=\"http://www.mydomainname/file.php?id=$id\">$subject</a>";
$sql = "update cdb_posts set subject='$link1' where pid='$pid'";
玄之丞 2006-05-22
  • 打赏
  • 举报
回复
汗, 狂暈
建議樓主把
$a='"';
$b="'";

然後,把SQL裏面的單雙引號用 $a $b 代替.
i33333 2006-05-22
  • 打赏
  • 举报
回复
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);

但还是不行
iisbsd 2006-05-22
  • 打赏
  • 举报
回复
养成个习惯用mysql_escape_string吧,安全,程序也好读些。
xuzuning 2006-05-22
  • 打赏
  • 举报
回复
$sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=$mode&clsid=$clsid&mp=$mp\">$subject</a>' where pid='$pid'";
i33333 2006-05-22
  • 打赏
  • 举报
回复
问题这样解决了:

把要链接的路径改为了相对路径,然后就好了



但不知道为什么
i33333 2006-05-22
  • 打赏
  • 举报
回复
scsjs(闪电回归),还是不行

我打印出来看看
i33333 2006-05-22
  • 打赏
  • 举报
回复
谢谢 scsjs(闪电回归)!

我试试看


是在改dz论坛
i33333 2006-05-21
  • 打赏
  • 举报
回复
好的,ymanh(珩),我试试看,但$sql = "update cdb_posts set subject='$subject' where pid='$pid'";可以,我觉得一样呢
i33333 2006-05-21
  • 打赏
  • 举报
回复
$sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=".$id."\">".$subject."</a>' where pid=".$pid;

结果还是一样``` -_-
i33333 2006-05-20
  • 打赏
  • 举报
回复
现在的情况是这样:

原句:
$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不能正常显示,其他方面都正常,为什么呢,怎么解决呢
i33333 2006-05-20
  • 打赏
  • 举报
回复
对了,还要再加上原SQL语句中的$subject变量,最终这样写对吗

$sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . \"/a>$subject ' where pid='$pid'";
ymanh 2006-05-20
  • 打赏
  • 举报
回复
$sql = "update cdb_posts set subject='<a href=\"article_list.php?mode=' . $mode . '&clsid=' . $clsid . '&mp=' . $mp . \" ' where pid='$pid'";
ymanh 2006-05-20
  • 打赏
  • 举报
回复
$subject ,$pid ,$id 这些都是变量,你的写法是不能转义的
i33333 2006-05-20
  • 打赏
  • 举报
回复
谢谢ymanh(珩)!

我试试
ymanh 2006-05-20
  • 打赏
  • 举报
回复
$sql = "update cdb_posts set subject='<a href=\"http://www.mydomainname/file.php?id=".$id."\">".$subject."</a>' where pid=".$pid;
zeroleonhart 2006-05-20
  • 打赏
  • 举报
回复
$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'";
加载更多回复(6)

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧