php - mysqli中的mysql_result替换

标签 php mysql 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

关于php - mysqli中的mysql_result替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546564/

相关文章:

mysql - 为辅助表生成的主键在 @OneToMany 关系上为空

php - 从 Windows 到 MAC OS/WAMP 到 MAMP 的更改

php - 将 2 个内部联接结果合并为一个结果

php - SQL 查询不会通过 MySQLi 在 PHP 中给出结果

php - 显示消息 "nothing found"查询 mysql pdo

javascript - 如何使用 PHP 或 JavaScript 同时在两台不同的打印机上打印?

mysql - 如何在 SQL 存储过程中追加查询

php - 无法在数据库中插入必填字段

php - 我应该如何在 php 中使用 array_intersect 函数而不是 MySQL 交集?

php - CodeIgniter if...else 语句未正确执行