我正在尝试运行一个非常简单的更新查询,当这些值被硬编码但当我尝试动态传递应用程序的ID时不起作用。我有一个.json对象,它传递数据以及应用程序的ID。该项目中的其他类似代码也适用。 javascript函数的作用是成功部分返回适当的消息但db不更新。关于为什么这可能不会通过的建议?另外,有没有办法在php中“控制日志”它试图传递给查询的ID是什么?
以下是代码:
<?
date_default_timezone_set("America/Boise");
$time = array('current_datetime'=>date('Y-m-d H:i:s'));
$inputs = json_decode(file_get_contents("php://input"));
include '../databases.php';
$db_object = new database();
// start a secure session
$db_object->secureSessionStart('__dpc_session');
try {
// check if admin
$db_object->permissionCheck(1);
$con = $db_object->connect();
// sanitize inputs
$cleanInputs = $db_object->sanitize($inputs);
// create sql
$sql = "UPDATE applications SET enr1 = ?, enrName1 = ?, enr2 = ?, enrName2 = ? WHERE id = ? LIMIT 1";
// store in database
$db_object->genericSql($sql, ['i', 's', 's', 's', 's'], [$cleanInputs->id, $cleanInputs->enr1, $cleanInputs->enrName1, $cleanInputs->enr2, $cleanInputs->enrName2]);
} catch (Exception $e) {
http_response_code(401);
print_r(json_encode(array('error'=>$e->getMessage()), JSON_UNESCAPED_UNICODE));
exit;
}
答案 0 :(得分:0)
打嗝来自于动态传递ID,但解决方案非常简单。
不需要传递id =?,而是需要将id设置为来自$ cleanInputs的内容,如下所示:
$sql = "UPDATE applications SET enr1 = ?, enrName1 = ?, enr2 = ?, enrName2 = ? WHERE id = '$cleanInputs->id'";