isset内联验证语法问题

时间:2012-08-29 04:15:21

标签: php

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

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

我目前有:

$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。

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

欢呼声,

2 个答案:

答案 0 :(得分:2)

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

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

以下内容被认为是空的:

  • “”(空字符串)
  • 0(0为整数)
  • 0.0(0作为浮动)
  • “0”(0作为字符串)
  • NULL
  • FALSE
  • array()(空数组)
  • $变种; (声明的变量,但没有值)

答案 1 :(得分:0)

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

更新

糟糕!我读错了,杰克是对的,帖子讲的是mysqli,而不是mysql。遗憾。