2

使用 Python 的三引号字符串,我可以定义包含'、反引号的字符串,或者"不必关心它:

hello = """    
            This string is bounded by triple double quotes (3 times ").
        Unescaped newlines in the string are retained, though 
        it is still possible to use all normal escape sequences.

            Whitespace at the beginning of a line is
        significant.  

            This string ends in a newline.
        """

在 PHP 中,我可以使用heredoc ( <<<):

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

我怎样才能在 MySQL 中做同样的事情?现在我必须确保我转义了我用来分隔的字符,例如,如果我'用作分隔符,我必须\'在我的字符串中使用:

UPDATE article
SET article_text ='
Extra-virgin olive oil is a staple in any chef\'s kitchen.
'

我希望能够像

UPDATE article
SET article_text ='''
Extra-virgin olive oil is a staple in any chef's kitchen.
'''
4

1 回答 1

3

您还可以在一行中使用两个单引号 ( ''),而不是对单引号 ( ) 进行反斜杠转义\'

据我所知,除了双单引号之外,没有更简单的方法。没有等价于"""。这是可悲的。

但实际上,这里提到的最好的选择(如果你想节省时间)根本不使用任何基于 SQL 的解决方案;最常见的数据库由用另一种语言编写的程序访问,或者由用另一种语言编写的程序生成的 SQL 脚本访问。

我还没有遇到过一种不支持预准备语句的编程语言,并且为了方便起见,至少有一些 SQL 转义函数。

于 2014-05-27T20:42:44.117 回答