我有以下代码获取只有一个字段在PHP和mysqli的
if (isset($_POST['change'])) {
$current = mysqli_real_escape_string($con, $_POST['current']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$cpassword = mysqli_real_escape_string($con, $_POST['cpassword']);
if(strlen($password) < 6) {
$error = true;
$password_error = "Password must be minimum of 6 characters";
}
if($password != $cpassword) {
$error = true;
$cpassword_error = "Password and Confirm Password doesn't match";
}
if(mysqli_fetch_field(mysqli_query($con, "SELECT password FROM users WHERE id = '" . $_SESSION['usr_id'] . "' LIMIT 1")) != md5($current)) {
$error = true;
$confirm_error = "Your actual password is not correct";
}
}
的问题是在这里:
mysqli_fetch_field(mysqli_query($con, "SELECT password FROM users WHERE id = '" . $_SESSION['usr_id'] . "' LIMIT 1"))
它给我的错误
PHP Catchable fatal error: Object of class stdClass could not be converted to string in /.../password.php on line 27
我曾尝试与
mysql_result(mysqli_query($con, "SELECT password FROM users WHERE id = '" . $_SESSION['usr_id'] . "' LIMIT 1"), 0)
,但它不工作,它给了我
PHP Fatal error: Uncaught Error: Call to undefined function mysql_result() in /.../password.php:27
我不想使用mysqli_fetch_array()
和while
循环。我搜索了一个功能或类似的东西,我发现了一些东西,但没有为我工作。
'mysqli_real_escape_string($ con,$ _POST ['password'])'你知道这样做会适得其反。 –
它可能与'mysqli_fetch_field'无关。转储'$ _SESSION ['usr_id']',并分隔你的mysqli_query和mysqli_fetch_field语句。当然,mysql_result不起作用,它不是一个mysqli函数。 – aynber
'我不想使用mysqli_fetch_array()和while循环.' ....为什么? –