我正在创建一个应用程序来帮助跟踪我们青年部的孩子们在夏令营中获得的奖学金。应用程序的这一部分从数据库中选择他们当前拥有的金额,将其保存到名为 $oldAmount 的变量中,将其添加到 $fundsAmount,并使用新的资金金额更新数据库。
//Select student's current allocated funds amount and save to $studentFunds array
$selectQuery = "SELECT studentFunds FROM students WHERE studentNum = $studentNum";
$selectStatement = $db -> prepare($selectQuery);
$selectStatement -> execute();
$studentFunds = $selectStatement -> fetchAll();
//DEBUG: Display value of studentFunds array
echo "Value of array studentFunds before operation: ";
var_dump($studentFunds);
//Save the value of $studentFunds['studentFunds'] to $oldAmount
$oldAmount = $studentFunds['studentFunds'];
//Perform operation: add old amount and new funds amount together
$studentNewAmount = $oldAmount + $fundsAmount;
//DEBUG: display $studentNewAmount
echo "Value of studentNewAmount after operation: ";
echo $studentNewAmount;
//DEBUG: $studentNewAmount = 255;
$db -> query("UPDATE students SET studentFunds = '$studentNewAmount' WHERE studentNum = $studentNum");
出于某种原因,每当我运行应用程序时,我都会收到此错误:
注意:未定义索引:第 31 行 C:\xampp\htdocs\scholarshipManager\model\insertAllocation.php 中的 studentFunds
第 31 行在这里:
$oldAmount = $studentFunds['studentFunds'];
var_dump() 显示 $studentFunds 数组的以下内容:
运算前数组 studentFunds 的值:
array(1) {
[0]=> array(2) {
["studentFunds"]=> string(3) "200"
[0]=> string(3) "200"
}
}
此外,由于该错误,我的数据库没有更新为新金额。
如您所见,studentFunds 索引确实包含一个值,那么为什么会发生这种情况。我误解了错误还是我的代码中有错误?