将id传递给更新mysql查询

时间:2016-05-11 17:17:44

标签: javascript php mysql

我正在尝试运行一个非常简单的更新查询,当这些值被硬编码但当我尝试动态传递应用程序的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;
}

1 个答案:

答案 0 :(得分:0)

打嗝来自于动态传递ID,但解决方案非常简单。

不需要传递id =?,而是需要将id设置为来自$ cleanInputs的内容,如下所示:

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