Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL中使用包含转义字符的字符串更新_Mysql - Fatal编程技术网

如何在MySQL中使用包含转义字符的字符串更新

如何在MySQL中使用包含转义字符的字符串更新,mysql,Mysql,请看这里: UPDATE cars_tbl SET description = '{\rtf1' WHERE (ID=1) 描述字段是“blob”,我的RTF文档将存储在这里 当我检查更新的数据时,我总是发现 { tf1 \r完全不存在。我试图在网上找到解决办法,但没有成功。我的rtf文件在许多地方损坏,因为字符串中使用的转义字符被替换。如何抑制此替换并按原样使用字符串更新字段 谢谢你的建议 Lyborko反斜杠是一个转义字符,因此要保留它,您需要一个双反斜杠: UPDATE ca

请看这里:

    UPDATE cars_tbl 
SET description = '{\rtf1'
WHERE (ID=1)
描述字段是“blob”,我的RTF文档将存储在这里

当我检查更新的数据时,我总是发现

{
tf1
\r完全不存在。我试图在网上找到解决办法,但没有成功。我的rtf文件在许多地方损坏,因为字符串中使用的转义字符被替换。如何抑制此替换并按原样使用字符串更新字段

谢谢你的建议


Lyborko

反斜杠是一个转义字符,因此要保留它,您需要一个双反斜杠:

UPDATE cars_tbl 
SET description = '{\\rtf1'
WHERE (ID=1)

作为旁白
\r
是回车。。它并没有在你的数据中消失;它负责
tf1
出现在
{

反斜杠下面的一行,反斜杠是一个转义字符,因此要保留它,您需要一个双反斜杠:

UPDATE cars_tbl 
SET description = '{\\rtf1'
WHERE (ID=1)

作为旁白,
\r
是回车..并且它没有在您的数据中消失;它负责
tf1
出现在
{

下一行。您可以使用更通用的方法来实现这一点

在mysql中使用QUOTE()

MySQL QUOTE()从用户提供的字符串作为参数生成一个字符串,该字符串是SQL语句中正确转义的数据值

函数通过用单引号括住字符串,并在每个单引号、反斜杠、ASCII NUL和control-Z前面加一个反斜杠来实现这一点

示例

更新车辆\u tbl
集合描述=引号(“{\rtf1”)
其中(ID=1)

更新

要退出RTF,您也可以使用替换,这样所有
\
都将变成
\

示例

更新车辆\u tbl
SET description=REPLACE(“{\rtf1',“\”,“\ \”)

其中(ID=1)

您可以使用更通用的方法来实现这一点

在mysql中使用QUOTE()

MySQL QUOTE()从用户提供的字符串作为参数生成一个字符串,该字符串是SQL语句中正确转义的数据值

函数通过用单引号括住字符串,并在每个单引号、反斜杠、ASCII NUL和control-Z前面加一个反斜杠来实现这一点

示例

更新车辆\u tbl
集合描述=引号(“{\rtf1”)
其中(ID=1)

更新

要退出RTF,您也可以使用替换,这样所有
\
都将变成
\

示例

更新车辆\u tbl
SET description=REPLACE(“{\rtf1',“\”,“\ \”)

其中(ID=1)

所以你的意思是,当我格式化RTF字符串时,我必须将一个斜杠替换为两个斜杠。这是唯一一个这样做的方法吗?因为RTF充满了它。我很惊讶你必须这样做,如果你正确地将RTF解析为字符串,然后使用PDO或mysqli绑定它,它应该可以正常工作。>遗憾的是,这是真的。我很难理解将斜杠的替换编码为双斜杠,这很有效…但这是一件令人讨厌的事情…所以你的意思是,当我格式化RTF字符串时,我必须将一个斜杠替换为两个斜杠?这是唯一一个这样做的方法吗???因为RTF充满了斜杠。我很惊讶你必须这样做,如果你正确地将RTF解析为一个字符串,然后绑定我在使用PDO或mysqli时,它应该按原样工作。>不幸的是,这是真的。我硬编码将斜杠替换为双斜杠,它工作了…但这是一件令人讨厌的事情…不,它不工作…它在字符串的两端添加“”字符,并使用转义符…是的,我没有得到你想要的。看看我的更新。william,syntax在某种程度上是不正确的…:“…在'\\'附近使用正确语法的服务器版本”.Thanx无论如何…我在应用程序中替换了RTF字符串中的斜杠…不,它不起作用…它在字符串的两端添加了“”个字符,并且无论如何使用了转义字符…是的,你是对的,我没有得到你想要的。看看我的更新。william,语法有点不正确…:“…在“\\”附近使用正确语法的服务器版本”。无论如何,Thanx…我在应用程序中替换了RTF字符串中的斜杠。。。