试图理解bind_param(无法编辑变量,否则什么都保存不了)



我正在尝试使这部分代码工作。 1.我不明白"ssi"是什么。 2.如果我只想要名字并在两个地方删除姓氏,则代码将不再有效。为什么?

因此,通过执行第二步,我无法编辑和调整我的代码。我只希望名字在那里而不是姓氏,但如果我删除这些姓氏变量,它不起作用。不明白为什么?你可以帮我吗。

感谢您抽出宝贵时间

if ($stmt = $mysqli->prepare("UPDATE players SET firstname = ?, lastname = ?
WHERE id=?"))
{
$stmt->bind_param("ssi", $firstname, $lastname, $id);
$stmt->execute();
$stmt->close();
}

第一个参数(在你的例子中是"ssi"(是一个格式字符串,告诉bind_param哪些类型的参数被绑定到它。"s"代表"字符串","i"代表"整数"。在这里,您有一个由两个字符串(名字和姓氏(后跟一个整数(id(组成的序列。

如果要删除姓氏,则应将其从set子句中删除,删除其绑定变量并从格式字符串中删除相应的"s":

if ($stmt = $mysqli->prepare("UPDATE players SET firstname = ? WHERE id = ?"))
# Updating lastname was removed here -------------------------^
{
$stmt->bind_param("si", $firstname, $id);
# s removed --------^
# $lastname remoed ----------------^
$stmt->execute();
$stmt->close();
}

最新更新