php中什么是转义字符,php – 转义字符串是什么意思?

转义字符串意味着减少在该字符串中使用的引号(和其他字符)中的歧义。例如,当您定义字符串时,通常用双引号或单引号将其括起来:

"Hello World."

但是如果我的字符串中有双引号呢?

"Hello "World.""

现在我有歧义 – 解释器不知道我的字符串在哪里结束。如果我想保持我的双引号,我有几个选项。我可以使用单引号围绕我的字符串:

'Hello "World."'

或者我可以逃避我的报价:

"Hello \"World.\""

前面带有斜杠的任何引号都将被转义,并被理解为字符串值的一部分。

当涉及到查询时,MySQL有一些关键字,它监视我们不能在我们的查询中使用,而不会导致一些混乱。假设我们有一个值列表,其中一个列被命名为“Select”,我们想选择:

SELECT select FROM myTable

我们现在在我们的查询中引入了一些歧义。在我们的查询中,我们可以通过使用back-ticks来减少歧义:

SELECT `select` FROM myTable

这消除了我们在选择字段名称时使用不良判断引入的混淆。

很多这些可以通过简单的传递你的值通过mysql_real_escape_string()处理。在下面的例子中,你可以看到,我们传递用户提交的数据通过此函数,以确保它不会导致任何问题的查询:

// Query

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",

mysql_real_escape_string($user),

mysql_real_escape_string($password));

其他方法存在字符串转义,如add_slashes,addcslashes,quotemeta和更多,虽然你会发现,当目标是运行一个安全的查询,大型开发人员喜欢mysql_real_escape_string或pg_escape_string(在PostgreSQL的上下文中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值