mysql - 如何在MySQL select中转义单引号和双引号?

标签 mysql sql

从 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/

相关文章:

php - SELECT 在 UPDATE 之后给出旧值

mysql - 在日期期间每周插入行

mysql - SQL查询和子查询

mysql - VB+ASP+MySQL : how to know if I have idle opened connections to mysql?

sql - 使用 Oracle SQL 作为匹配引擎

MySQL使用分隔符提取子串

sql - SELECT 查询何时开始返回行?

mysql - 删除 mysql 表上的重复项 [表> 2Gb]

mysql - 获取最小最接近值

mysql - 问题的最优查询