我正在构建一个表单,目前正在验证输入。
基本上,我想做的是检查他们是否输入了什么,如果是,请转义它并将其添加到变量中,否则将一个错误添加到稍后显示的潜在错误列表中。
我目前有:
$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。很抱歉