2013-03-20 34 views
-1

我需要与此查询帮助:#1064 - 您的SQL语法错误; 'block'附近使用正确的语法?

update ibf_posts 
set post = 
replace (post, 
'<div><div style="background: #B7E5CE;border: 1px dotted #000; border-bottom: 0; border-left: 4px solid #429E6F; color: #000; font-weight: bold; font-size: 10px; margin: 8px auto 0 auto; padding: 3px;">SPOILER <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='--Click here to view--';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='--Click here to hide--';}">--Click here to view--</a></div><div style="color: #000000; background: #FAFCFE; border: 1px dotted #000; border-left: 4px solid #429E6F; border-top: 0; padding: 4px; margin: 0 auto 8px auto;display:none;">', 
'[spoiler]'); 

我得到这个错误:

#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 'block') 
{parentNode.parentNode.getElementsByTagName('div')[1].style.display='none' at line 1 

任何线索?谢谢

+0

在查询中使用它之前,先将其输出转义出来,然后在结尾处输入字符串。 – Wrikken 2013-03-20 22:18:13

+0

我不太懂,我在做什么?谢谢 – andybadwool 2013-03-20 22:20:10

+0

如果你正在手动编写这个查询,使用'\'',但是,对于动态值,你正在构建这个的语言/接口可能会有所帮助。 – Wrikken 2013-03-20 22:21:07

回答

0

既然你插入字符串与'(单撇号/引号),你需要转义所有相同的字符串内出现。

update ibf_posts 
set post = 
replace (post, 
'<div><div style="background: #B7E5CE;border: 1px dotted #000; border-bottom: 0; border-left: 4px solid #429E6F; color: #000; font-weight: bold; font-size: 10px; margin: 8px auto 0 auto; padding: 3px;">SPOILER <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display==\'block\'){parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display=\'none\';this.innerHTML=\'--Click here to view--\';}else {parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display='block';this.innerHTML=\'--Click here to hide--\';}">--Click here to view--</a></div><div style="color: #000000; background: #FAFCFE; border: 1px dotted #000; border-left: 4px solid #429E6F; border-top: 0; padding: 4px; margin: 0 auto 8px auto;display:none;">', 
'[spoiler]'); 

逃逸是在前面加上一个反斜杠(\)的报价来完成。

+0

谢谢Wrikken和Dream Eater,使用反斜杠:) – andybadwool 2013-03-20 22:26:52

相关问题