无法弄清楚问题。问题从**开始,以**结束,问题就在它之后。请帮我修改我的代码,好像有太多问题。很抱歉。
<?php
include 'core/login.php';
include 'core/init.php';
include 'includes/head.php';
if(count($_POST)>0) {
$result = mysqli_query("SELECT *from users WHERE id='" . $_SESSION["id"] . "'");
$row=mysqli_fetch_array($result);
if($_POST["currentPassword"] == $row["password"])
{
mysqli_query("UPDATE users set password='" . $_POST["newPassword"] . "' WHERE id='" . $_SESSION["id"] . "'");
$message = "Password Changed";
}
else
$message = "Current Password is not correct";
}
&GT;
我得到的错误是:
expects 2 parameters, 1 given / 1 parameter to be mysqli result, null given
undefined variable result
undefined currentpassword
undefined new password / expects 2 parameters, 1 given
答案 0 :(得分:1)
mysqli_query函数要求第一个参数是MySQLi链接标识符。在您的代码中,第一个参数是SQL语句(即字符串)。
mysqli_connect()函数返回一个链接标识符,您可能在init.php脚本中使用了该函数。
示例:
$link = mysqli_connect("localhost", "root", "", "info");
$result = mysqli_query($link, $sql);
答案 1 :(得分:1)
让我们首先阅读错误消息:
需要2个参数,1个给定/ 1参数为mysqli结果,null给定
因此该函数需要2个参数。你提供它......
mysqli_query("SELECT *from users WHERE id='" . $_SESSION["id"] . "'")
一个参数。 mysqli_query()
也需要给出连接对象:
mysqli_query($connection, "SELECT *from users WHERE id='" . $_SESSION["id"] . "'")
(或任何连接对象的名称)
未定义的变量结果
创建$result
的操作失败,因此使用$result
的任何操作也都会失败。
undefined currentpassword
这表明POST数据不包含您要查找的值。在尝试使用它之前,您可以使用isset()
来确定某个值是否存在。
未定义的新密码/预期2个参数,1给定
与上述相同的问题。
此外,还有两个问题你没有注意到......
"UPDATE users set password='" . $_POST["newPassword"] . "' WHERE id='" . $_SESSION["id"] . "'"
这些都是 非常糟糕的事情 ,应立即修复。
答案 2 :(得分:0)
您的mysqli_query
不正确,它需要第二个参数,即连接字符串。尝试这样的事情:
$con = mysqli_connect("HOST","USERNAME","PASSWORD","DATABASE");
mysqli_query($con, "SELECT *from users WHERE id='" . $_SESSION["id"] . "'")
答案 3 :(得分:0)
使用此代码修复它...现在唯一的问题是它没有改变。至少错误已经消失,现在只会玩它。
<?php
include 'core/login.php';
include 'core/init.php';
include 'includes/head.php';
if(count($_POST)>0) {
$result = mysqli_query($link, "SELECT *from users WHERE id='" . $_SESSION["id"] . "'");
$row=mysqli_fetch_array($result);
if($_POST["currentpassword"] == $row["password"]) {
mysqli_query("UPDATE users set password='" . $_POST["newpassword"] . "' WHERE id='" . $_SESSION["id"] . "'");
$message = "Password Changed";
} else $message = "Current Password is not correct";
}
?>