0

我正在构建一个表单,目前正在验证输入。

基本上我想要做的是检查他们是否输入了一些东西,如果是这样,将其转义并将其添加到变量中,否则将错误添加到稍后显示的潜在错误列表中。

我目前有:

$category = isset($_POST['category']) ? mysqli_real_escape_string($DBConnect, $_POST['category']) : $error[] = "Which Category is this request for?";

当我在 $category 上执行 var_dump 时(输入时)我得到 NULL,当没有输入时我得到 STRING(35)“这个请求是针对哪个类别的?” 我也尝试将行更改为:

isset($_POST['category']) ? $category =  mysqli_real_escape_string($DBConnect, $_POST['category']) : $error[] = "Which Category is this request for?";

但 var_dump 仍然说它是 NULL。

有人可以向我解释我做错了什么吗?

干杯,

4

2 回答 2

2

isset只会检查该变量是否设置为 NULL。

如果您还想检查空白然后请使用empty这将true在以下情况下返回您。

以下内容被认为是空的:

  • ""(一个空字符串)
  • 0(0 为整数)
  • 0.0(0 作为浮点数)
  • "0" (0 作为字符串)
  • 空值
  • 错误的
  • array() (一个空数组)
  • $var; (声明的变量,但没有值)
于 2012-08-29T04:17:59.893 回答
0

mysql_real_escape_string 期望字符串是第一个参数,连接是第二个参数。尝试交换它们:)

更新:

哎呀!我读错了,杰克是对的,帖子说的是 mysqli,而不是 mysql。对不起。

于 2012-08-29T04:20:19.007 回答