Я запускаю тот же запрос на включение mysqli, используя точный те же параметры. Это успешное около 1/3 времени, и я не могу понять, что происходит не так.Ошибочные результаты с запросом на вставку mysqli
<?php
//...
$decrypted_session_key = 'unavailable'; // initialize
$res = openssl_get_privatekey($priv_key, $passphrase);
$result = openssl_private_decrypt($encrypted_session_key, $decrypted_session_key, $res, OPENSSL_PKCS1_OAEP_PADDING);
if ($decrypted_session_key == 'unavailable') {
mysqli_close($link);
echo json_encode(array('result' => 'failed', 'message' => 'failed to decrypt the session key'));
die();
}
if (!$decrypted_session_key) {
echo json_encode(array('result'=>'failed', 'message'=>'decrypted session key has failed'));
die();
}
$updated_at = date("Y-m-d H:i:s");
// save this record to the database
$result = mysqli_query($link, "INSERT INTO Session_Keys (session_id, session_key, iv, updated_at)
VALUES ($session_id, '$decrypted_session_key', '$iv', '$updated_at')");
if (!$result) {
$param_check = $session_id . " " . base64_encode($iv) . " " . base64_encode($decrypted_session_key) . " " . $updated_at;
echo json_encode(array('result'=>'failed', 'message'=>$param_check));
die();
}
// ...
}
Всякий раз, когда это терпит неудачу, я возвращаю последнее выражение эха. Мое подозрение заключалось в том, что процедура расшифровки php терпела неудачу, но это не так. Все параметры идеальны, включая значение дешифрования. Проблема в том, что моя инструкция insert неверна? Я пробовал различную комбинацию цитирования полей, но ничего не последовал.
Структура таблицы, как это:
'session_id' INT (11)
'session_key' TINYBLOB
'IV' TINYBLOB
'updated_at' DateTime
Я не» Не понимаю, почему мои результаты настолько непоследовательны. Если он терпит неудачу, почему не терпит неудачу каждый раз? Если он работает, почему он не работает каждый раз? Очень смущенный. Любая помощь приветствуется. Благодаря!
Вы используете неправильные идентификаторы в объявлении столбца. Добавьте 'или die (mysqli_error ($ link))' в 'mysqli_query()', и вы увидите ошибку синтаксиса. Также убедитесь, что '$ session_id' не является передаваемой строкой. –
Я этого не вижу. Можете быть более конкретными? Благодаря! – Alex
Я вижу, что вы удаляете цитаты вокруг 'updated_at)' - У вас была '' updated_at ') 'раньше. Вот почему я это сказал. –