如何修复stmt准备和绑定

时间:2015-08-06 13:07:39

标签: php mysqli prepare bindparam

我无法使用此准备和绑定。我尝试使用较少的变量来绑定相同的东西。我已成功使用只有Fname,Lname,Password,$ UserID和使用带有bind_param对象的sssi的prepare。在我的绑定代码中使用更多变量时,有人可以解释我做错了吗?使用下面的代码,它只打印出来自mysqli的相同数据,并且不会更新它。

if ($stmt = $con->prepare("UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ?, WHERE UserID= ?"))
{
    $stmt->bind_param("ssssssi", $firstname, $lastname, $PW, $UserLevel, $EM, $UserID);
    $stmt->execute();
    $stmt->close();
}
// show an error message if the query has an error
else
{
    echo "ERROR: could not prepare SQL statement.";
}

// redirect the user once the form is updated
header("Location: admin.php");

1 个答案:

答案 0 :(得分:1)

虽然您还没有指定使这一点变得棘手的数据类型,但我会冒这个猜测。

Lname = s

Password = s

UserLevel = i

Email = s(?)

$stmt->bind_param("sssisi", $firstname, $lastname, $PW, $UserLevel, $EM, $UserID);

我算4秒'那里,你有 6

试试这个,

"UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ?, WHERE UserID= ?"

修改1

正如@ Fred-ii-所说,你的SQL查询是错误的。

更改

"UPDATE users SET Fname = ?, Lname = ?, Password = ?, UserLevel = ?, Email = ? WHERE UserID= ?"

要,

,

您接受过培训function change() { if (window.document.pic.src == "imgd1.svg"){ window.document.pic.src ="imgd1over.svg"; } else if(window.document.pic.src == "imgd1over.svg"){ window.document.pic.src ="imgd1.svg"; } <img src ="imgd1.svg" name ="pic" id = "test" onclick ="change()"/>