从 id = 1 的电影中选择名称;
给我
name
----------
How the 'A' Stole Christmas
我如何选择才能获得
name
----------
How the \'A\' Stole Christmas
我可以使用 replace(title,'\'','\\\'')
,它变得很难看,因为我需要为单引号和双引号做两次,很想知道是否有更干净的方法
最佳答案
挣扎于转义字符表明您可能在数据流经不同系统时不必要地手动转换字符串。我想问的问题是是否有必要根据您的要求使用转义字符串。
在构建和执行查询时,您应该使用绑定(bind)变量,这样就无需引用字符串来构建 Sql 查询,并最大限度地降低 Sql 注入(inject)安全问题的风险。
参见http://php.net/manual/en/mysqli-stmt.bind-param.php
一旦您在变量或 PHP 结构中获得了 Sql 结果,通常最好找到函数/库,例如 https://coderwall.com/p/p2kumg/json_encode-vs-serialize-with-php-arrays 中描述的 JSON 函数。
当然还有http://www.w3schools.com/php/func_string_addslashes.asp正如 D4V1D 在评论中提到的。
编辑... 似乎还有一个 Mysql QUOTE() 函数可以满足您的要求。
参见http://www.w3resource.com/mysql/string-functions/mysql-quote-function.php
关于mysql - 如何在MySQL select中转义单引号和双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900356/