什么原因导致出现“注意:未初始化的字符串偏移量”?[已关闭]

2022-08-30 08:55:46

我有一个用户填写的表单,表单上有多个相同的字段,如“项目名称”,“项目日期”,“类别”等。根据用户提交的表单数量,我的目标是:

  1. 循环访问表单数
  2. 创建单独的 SQL 插入语句

但是,PHP给我一个我似乎不理解的通知:

通知:

注意:未初始化的字符串偏移量:1 ...数据密码.php 90号线

菲律宾比索

$myQuery = array();

if ($varsCount != 0)
{
  for ($i=0; $i <= $varsCount; $i++)
  {
    $var = "insert into projectData values ('" . $catagory[$i] . "', '" .  $task[$i] . "', '" . $fullText[$i] . "', '" . $dueDate[$i] . "', null, '" . $empId[$i] ."')";
    array_push($myQuery, $var);     
  }
}

有关于我遇到的这个问题的参考,但它们并不精确,我很难推断出实际问题的根源。我非常感谢任何帮助,以了解导致数组未正确初始化的原因。


答案 1

如果以下任何变量实际上是字符串或 null 而不是数组,则会发生此错误,在这种情况下,使用数组语法访问它们就像尝试访问字符串中的特定字符一样:$var[$i]

$catagory
$task
$fullText
$dueDate
$empId

简而言之,插入查询中的所有内容。

也许变量拼写错误?$catagory


答案 2

这意味着您的一个数组实际上不是数组。

顺便说一句,您的if检查是不必要的。如果 $varsCount 为 0,则 for 循环无论如何都不会执行。