【发布时间】:2010-11-18 19:35:51
【问题描述】:
我有一个用户填写的表单,表单上有多个相同的字段,例如“项目名称”、“项目日期”、“类别”等。根据用户提交的表单数量,我的目标是:
- 循环表单的数量
- 创建单独的 SQL 插入语句
但是,PHP 向我抛出了一个我似乎不明白的通知:
注意:
注意:未初始化的字符串偏移量:1 ...dataPasser.php 在第 90 行
PHP
$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);
}
}
我遇到了这个问题的参考资料,但它们并不准确,我无法推断出实际问题的根源。我将不胜感激任何帮助了解导致数组无法正确初始化的原因。
【问题讨论】:
-
您在示例中遗漏了很多内容,但是 var_dump($myQuery) 的输出是什么?
-
第 90 行在哪里,完整的通知是什么?
-
我只是想补充一点,您根本不需要在这里使用array_push。就这样做吧。 $myQuery[] = $var;
-
这个问题已经结束,但也许我可以帮助任何喜欢我的人,因为在动态调用一个数组(或实现 ArrayAccess)的类属性时忘记包含大括号而出现此错误同时访问其元素之一。例如。
$this->$arrayMember[$index]将首先评估$arrayMember[$index];所以像这样明确地表示动态成员名称部分:$this->{$arrayMember}[$index].