簡體   English   中英

在mysqli中替換mysql_result

[英]mysql_result replacement in mysqli

所以我正在將我的整個網站轉換為mysqli_ *,並遇到了我無法找到替代品的第一個問題。 基本上我有一個password_reset表單,只有具有鏈接的用戶才能訪問。 一旦用戶輸入password_reset.php站點,他需要輸入他的臨時密碼才能更改密碼。 我使用mysql_result來獲取與通過http POST輸入的用戶名相關聯的臨時密碼。

$link_users = mysqli_connect("$host", "$username", "$password", "$db_name") or die("cannot connect");
$results=mysqli_query($link_users, "SELECT temporary_password FROM $tbl_name");
$row = mysqli_fetch_array($results);


$new_pass1 = $_POST['new1_password'];
$new_pass2 = $_POST['new2_password'];

$new_encrypted_mypassword = sha1($new_pass1);

$temp_pass = $_POST['temp_password'];
$username_fetch = $_POST['temp_username'];
$temppass_database = mysqli_result(mysqli_query($link_users, "SELECT temporary_password FROM $tbl_name WHERE temporary_password='$temp_pass' AND username='$username_fetch'"), 0);

if ($temp_pass == $temppass_database && $new_pass1 == $new_pass2){
mysqli_query($link_users, "UPDATE $tbl_name SET password='$new_encrypted_mypassword' WHERE username='$username_fetch'");
}

elseif ($temp_pass != $temppass_database){
echo '<div class="alert">Invalid Temporary Password or Username!</div>';
}

// Delete temporary password
if ($temp_pass == $temppass_database && $new_pass1 == $new_pass2 ) {
mysqli_query($link_users, "UPDATE $tbl_name set temporary_password = null WHERE username='$username_fetch'");
echo '<div class="alert">Updated Password!</div>';
}

我希望你能幫助找到一個易於實現的解決方案來取代mysql_results。 正如您在上面的代碼中看到的,我嘗試使用不起作用的mysqli_result!

編輯:正如@randomizer建議的那樣; 我更新了我的代碼並用以下代碼替換了mysql_result: $temppass_database = mysqli_query($link_users, "SELECT temporary_password FROM $tbl_name WHERE temporary_password='$temp_pass' AND username='$username_fetch'")->fetch_object()->temporary_password;

謝謝您的幫助!

你可以使用mysqli_query("yourquery")->fetch_object()->password;

還要查看准備好的語句,它將使您的工作更輕松: http//www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM