我不是MySQL专家,我对此有疑问......
所以,我有一个论坛板数据库。我需要替换其中一个表中的过时代码。我正试着用这个:
Update ibf_posts
Set post = replace(post, '<div width="95%" style="margin:8px 26px 4px 26px"><a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class=\'spoilertop\'><b>SPOILER</b> [Show/Hide]</div></a><div style="display: none;" class="spoilermain">', '<div width="95%" style="margin:8px 26px 4px 26px"><a class=\'spoilertop\' style=\'display:block;\'><b>SPOILER</b> [Show/Hide]</a><div class="spoilermain">');
WHERE post LIKE '%<div width="95%" style="margin:8px 26px 4px 26px"><a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class=\'spoilertop\'><b>SPOILER</b> [Show/Hide]</div></a><div style="display: none;" class="spoilermain">%';
但它不起作用。它说:
#1064 - 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 'WHERE post LIKE '%<div width="95%" style="margin:8px 26px 4px 26px"><a href="ja' at line 1
这很奇怪,因为我尝试了我的本地主机,它工作正常。但是,当我在我的实时服务器中尝试时,它不起作用。我的MySQL版本(在实时服务器上)是MySQL 4.1.22。
任何帮助?
答案 0 :(得分:4)
你应该删除第二行末尾的分号,因为它表示查询结束,这不是真的。
答案 1 :(得分:1)
第二行最后有一个;
。删除后再query works
答案 2 :(得分:1)
分号(;
)用于终止查询,意味着我们在每个不在中间的查询的末尾只使用一个分号。
我很震惊您的代码在localhost上工作。您是否检查过该查询在localhost上完全符合您的要求,或者它正在执行其他操作。