isset内联验证语法问题


isset inline validation syntax issues

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

基本上,我想做的是检查他们是否输入了什么,如果是,请转义它并将其添加到变量中,否则将一个错误添加到稍后显示的潜在错误列表中。

我目前有:

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

有人能向我解释一下我做错了什么吗?

欢呼,

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

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

以下内容被认为是空的:

  • "(空字符串)
  • 0(0为整数)
  • 0.0(0作为浮点值)
  • "0"(0作为字符串)
  • NULL
  • 虚假的
  • array()(空数组)
  • $var;(已声明但没有值的变量)

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

更新:

哇!我读错了,Jack是对的,帖子说的是mysqli,而不是mysql。很抱歉