php - (MySQLi 程序)INSERT INTO (...) WHERE ID = SESSION ID
问题描述
我想向 MySQL 数据库中插入数据,应该插入数据的列必须取决于会话 ID。
<?php
session_start();
if (isset($_POST["mybutton"])) {
$favcolor = $_POST["mybutton"];
switch ($favcolor) {
case "0":
$sql = "INSERT INTO preferences (color) VALUES ('colord_id_1') WHERE id = $_SESSION['id']";
mysqli_query($conn, $sql);
break;
case "1":
$sql = "INSERT INTO preferences (color) VALUES ('colord_id_2') WHERE id = $_SESSION['id']";
mysqli_query($conn, $sql);
break;
}
}
mysqli_close($conn);
解决方案
您想更新记录而不是插入新记录:
$stmt = $conn->prepare("UPDATE preferences SET color='colord_id_1' WHERE id=?");
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
程序风格:
$stmt = mysqli_prepare($conn, "UPDATE preferences SET color='colord_id_1' WHERE id=?");
mysqli_stmt_bind_param($stmt, 'i', $_SESSION['id']);
mysqli_stmt_execute($stmt);
推荐阅读
- arrays - 如何将字段添加到嵌套数组中,以查看同一数组项 MongoDb 中的另一个字段
- flutter - 升级到 Flutter 2.5.1 后无法构建
- email - 使用 smtp 发送邮件时如何添加多个收件人?
- html - 背景图像不适用于我手机上的 Safari 浏览器
- tensorflow - 在 Sagemaker Pipelines 中使用增强的清单文件进行 Tensorflow 模型评估
- r - 选择了未定义的列:hlme
- express - 如果这些函数没有“返回”运算符,那么这些函数如何坚持 async.parallel 返回值?
- python - 我正在 python Tkinter 中构建 GUI 并在我的 gui 程序中单击按钮时调用 dat.py 但在 gui 中它卡住了
- python - AttributeError:“TranslationServiceClient”对象没有属性“translate_document”
- flutter - 带有工具提示的颤振选项卡