【发布时间】:2022-01-21 02:48:35
【问题描述】:
在我用于更新功能的库存管理应用程序中,设置 sql 后,我正在执行 $stmt,如果它成功执行,我将前往主页。否则做一些其他的动作。在我准备sql命令并执行它的if语句中,我用$stmt->close()关闭$stmt。但这给我带来了上面的错误。我遵循了一些其他问题的答案,他们建议在 if 语句中移动 close() 行。但它没有用。
Update.php
// Check input errors before inserting in database
if(empty($itemname_err) && empty($itemnumber_err) && empty($cost_err)&& empty($details_err)){
// Prepare an update statement
$sql= "UPDATE inventory SET itemname=$itemname, itemnumber=$itemnumber, cost=$cost,details=$details, WHERE id = $id";
if($stmt = $mysqli->prepare($sql)){
// Set parameters
$param_itemname = $itemname;
$param_itemnumber = $itemnumber;
$param_cost = $cost;
$param_details = $details;
$param_id = $id;
//$stmt->bind_param("sssss", $param_itemname, $param_itemnumber, $param_cost, $param_details, $param_id);
// Attempt to execute the prepared statement
if($stmt->execute()){
// Records updated successfully. Redirect to landing page
header("location: index.php");
exit();
} else{
echo "Oops! Something went wrong. Please try again later.";
}
}
// Close statement
$stmt->close(); // here's the problem line
}
// Close connection
$mysqli->close();
}else{
...
}
我尝试检查 sql,但对我来说似乎很好。那么有什么建议吗?
【问题讨论】:
-
你实际上不需要关闭,当脚本终止时 PHP 会这样做
-
@RiggsFolly 我什至尝试删除该行..但它没有做任何事情,没有更新...没有事件将我带到主页
-
您的准备很可能失败,但您没有对错误采取任何措施。
-
@NigelRen 我是这么认为的......不知何故它返回错误......不知道为什么
-
在查询中
details=$details,之后还有一个尾随,