Php 插入带有表单验证的数组时出错
对于使用mysqli的标记系统的表单验证,我有三个疑问。 .逃逸$tag_no数组的最佳做法是什么。 。当$tag_没有数组从表单传递时,整数作为字符串传递,因此is_int将不能与$tnumber一起使用,有什么想法吗? 。这是验证从表单传递的标记数组的总体最佳实践 希望这是明确和简洁,任何帮助将不胜感激。 提前谢谢Php 插入带有表单验证的数组时出错,php,forms,mysqli,Php,Forms,Mysqli,对于使用mysqli的标记系统的表单验证,我有三个疑问。 .逃逸$tag_no数组的最佳做法是什么。 。当$tag_没有数组从表单传递时,整数作为字符串传递,因此is_int将不能与$tnumber一起使用,有什么想法吗? 。这是验证从表单传递的标记数组的总体最佳实践 希望这是明确和简洁,任何帮助将不胜感激。 提前谢谢 $tag_no = $_GET['tno']; $tno = mysqli_real_escape_string($link, $tag_no); if ($tag_no !=
$tag_no = $_GET['tno'];
$tno = mysqli_real_escape_string($link, $tag_no);
if ($tag_no != false) {
$query = "INSERT INTO `uc` (`UNO`, `BNO`) VALUES ('$uno', '$box');";
foreach ($tag_no as $tnumber) {
if (is_int($tnumber)) {
$query .= "
INSERT INTO `ut` (`UNO`, `TNO`) VALUES ('$uno', '$tnumber')";
} else {
$query .= "INSERT INTO tags (TName) VALUES ('$tagname')";
}
};
};
mysqli_multi_query($link, $query);
即使你使用,你也必须使用“;”要分离独立查询,请执行以下操作
因此,请将代码更改为:
foreach ($tag_no as $tnumber) {
if (is_int($tnumber)) {
$query .= "
INSERT INTO `ut` (`UNO`, `TNO`) VALUES ('$uno', '$tnumber');"; # <-- note the ;
} else {
$query .= "INSERT INTO tags (TName) VALUES ('$tagname');"; # <-- note the ;
}
}
因为
$tag\u no
实际上是一个字符串,foreach需要一个数组。(您已经将它与mysqli\u real\u escape\u string()
一起使用过)即使是本地语法的highlighter也会告诉您缺少引号。这是你发布的真实代码吗?如果你想这样做,为什么不将它们作为整数而不是字符串传递呢?使用函数$tnumber的类型不是整数,因为它是从以下地址发送的谢谢,hek,Is_array($tag_no)返回“array”,我缺少什么吗?Is_array($tag_no)
将永远不会返回'array'
。它将返回TRUE
或FALSE
抱歉,它返回的是'TRUE',我不是字面上的数组。请注意,您不能将数组传递给mysqli\u real\u escape\u string()
。你必须先解决这个问题
foreach ($tag_no as $tnumber)