0

我有三个关于使用 mysqli 的标签系统的表单验证的查询。.什么是转义 $tag_no 数组的最佳做法。.当 $tag_no 数组从整数作为字符串传递的形式传递时,所以 is_int 不能与 $tnumber 一起使用,有什么想法吗?.这是验证从表单传递的标签数组的整体最佳实践吗?

希望这是清晰简洁的,任何帮助将不胜感激。提前致谢。

$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);
4

1 回答 1

0

即使你使用mysql_multi_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 ;
    }
 }

我也很确定,这将失败:

 foreach ($tag_no as $tnumber)

as$tag_no实际上是一个字符串,而 foreach 需要一个数组。(您已将其与. 一起使用mysqli_real_escape_string()。)

于 2013-04-18T19:38:45.757 回答