无法在 MySQL UPDATE 语句中转义分号
Can't escape semicolons in a MySQL UPDATE statement
我目前在使用 MySQL UPDATE 语句时遇到问题。出于某种原因,我无法转义语句中的分号。
如果我从语句中删除所有分号它工作正常,所以我知道它与转义分号有关。
我已经尝试了通过在它们前面加上 \
来转义它们的标准方法,但是这没有任何作用。
我也试过switching/swapping把所有的单引号换成双引号,把双引号换成单引号,来颠倒它们的顺序,这也没有任何作用。
这是我要执行的语句:
UPDATE email_campaign_template
SET content='<style>
/* General */
body {
font-family: "Open Sans", sans-serif;
color: #fdfcfc;
}
.container {
max-width: 660px;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
</style>
'
WHERE label='Property Flyer 01'
AND email_campaign_id = '10';
这会产生以下错误,它指的是语句中的第一个分号:
[Err] 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 ''<style> /* General */ body { font-family: "Open Sans",
sans-serif' at line 2
如何成功转义分号以便能够执行此 RAW MySQL 语句?
您可以使用 mysqli_real_escape_string()
来清理您的查询
参见实施文档。 http://php.net/manual/en/mysqli.real-escape-string.php
您可以使用 Heredoc 转义大段代码或文本
$text = <<<HEREDOC
'<style>
/* General */
body {
font-family: "Open Sans", sans-serif;
color: #fdfcfc;
}
.container {
max-width: 660px;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
</style>
HEREDOC;
UPDATE email_campaign_template
SET content= '$text'
WHERE label='Property Flyer 01'
AND email_campaign_id = '10';
只要您想在字符串中加入分号,请使用 CHAR(59)。
我目前在使用 MySQL UPDATE 语句时遇到问题。出于某种原因,我无法转义语句中的分号。
如果我从语句中删除所有分号它工作正常,所以我知道它与转义分号有关。
我已经尝试了通过在它们前面加上 \
来转义它们的标准方法,但是这没有任何作用。
我也试过switching/swapping把所有的单引号换成双引号,把双引号换成单引号,来颠倒它们的顺序,这也没有任何作用。
这是我要执行的语句:
UPDATE email_campaign_template
SET content='<style>
/* General */
body {
font-family: "Open Sans", sans-serif;
color: #fdfcfc;
}
.container {
max-width: 660px;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
</style>
'
WHERE label='Property Flyer 01'
AND email_campaign_id = '10';
这会产生以下错误,它指的是语句中的第一个分号:
[Err] 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 ''<style> /* General */ body { font-family: "Open Sans", sans-serif' at line 2
如何成功转义分号以便能够执行此 RAW MySQL 语句?
您可以使用 mysqli_real_escape_string()
参见实施文档。 http://php.net/manual/en/mysqli.real-escape-string.php
您可以使用 Heredoc 转义大段代码或文本
$text = <<<HEREDOC
'<style>
/* General */
body {
font-family: "Open Sans", sans-serif;
color: #fdfcfc;
}
.container {
max-width: 660px;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
</style>
HEREDOC;
UPDATE email_campaign_template
SET content= '$text'
WHERE label='Property Flyer 01'
AND email_campaign_id = '10';
只要您想在字符串中加入分号,请使用 CHAR(59)。