【问题标题】:PHP SQL Server addslashes() how does this work for blank values?PHP SQL Server addlashes() 这对空白值如何工作?
【发布时间】:2010-03-05 19:29:15
【问题描述】:
我遇到了用户能够使用 '" 和空白值提交数据的问题。我认为 addlashes() 可以工作,但只是想知道它对空白值有什么作用?
例子:
User enters data like: Company Name: ABC's
User can skip fields as well: Company URL:
我想知道如果 addlashes() 将该字段留空时会添加什么。我想我的问题是 addlashes() 如何处理空白?为NULL?
【问题讨论】:
标签:
php
sql-server
validation
【解决方案1】:
好吧,如果空白确实是空白(= 一个完全空的值),我假设在 PHP 中它将是 null。 The manual 表示“null”值将用反斜杠转义:
在需要在数据库查询等中引用的字符之前返回一个带有反斜杠的字符串。这些字符是单引号 (')、双引号 (")、反斜杠 () 和 NUL(NULL 字节)。
但是当我使用它进行测试时
print_r(addslashes(null));
我得到一个完全空的结果(=null,没有反斜杠)。
【解决方案2】:
提供的答案是准确的。要考虑的一件事是您是否专门寻找空值。虽然addslashes() 不会影响空值字段,但它不会将“空白”更改为空值。您可能已经考虑过这一点,但事先 trim() 值可能很有用。
$new_value = 添加斜杠(trim($value));
这将从“空”字段中删除所有空格或空格,以便它实际上返回一个空值。