向更新mysql查询传递一个id


Passing an id to an update mysql query

我正在尝试运行一个非常简单的更新查询,当值被硬编码时,它本身就可以工作,但当我试图动态传递应用程序的ID时,它就不工作了。我有一个.json对象,它传递数据以及应用程序的ID。项目中的其他类似代码也起作用。javascript函数的作用是成功部分返回适当的消息,但数据库不会更新。关于为什么这可能不会通过的建议?此外,有没有一种方法可以在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;
}

问题毕竟来自于动态传递ID,但解决方案非常简单。

不是传递id=?,id需要设置为来自$cleanInputs的东西,比如:

$sql = "UPDATE applications SET enr1 = ?, enrName1 = ?, enr2 = ?, enrName2 = ? WHERE id = '$cleanInputs->id'";