更新 MYSQL 中的特定行
Update specific row in MYSQL
在我的应用程序中,我可以为用户 upload
一个 image
。我正在维护 user_id
如下。
+----------+
| user_id |
+----------+
| ADM-0001 |
| ADM-0002 |
| DOC-0001 |
+----------+
问题是,如果我上传用户图片,它会在 table
中 update
all rows
。但是如果我手动将 user_id
更改为 1
而不是 ADM-0001
,那么它将更新特定的行。
以下是PHP代码,
<?php
session_start();
require_once "../auth/dbconnection.php";
if (isset($_POST['image'])) {
$croped_image = $_POST['image'];
list($type, $croped_image) = explode(';', $croped_image);
list(, $croped_image) = explode(',', $croped_image);
$croped_image = base64_decode($croped_image);
$image_name = time().'.png';
$stmt = $conn->prepare("UPDATE users SET image = ? WHERE user_id= ?");
$stmt->bind_param("si", $image_name, $_SESSION['user_id']);
$stmt->execute();
echo 'Image Uploaded Successfully.';
if($stmt->affected_rows === 0);
file_put_contents('blog/'.$image_name, $croped_image);
}else{
echo "ERROR: Could not prepare query: $stmt. " . mysqli_error($conn);
}
$stmt->close();
?>
实际上我想知道为什么会这样。请帮助我改进我的代码。提前致谢。
您告诉绑定参数方法将 user_id 转换为整数。
更改它以将其保留为字符串:
$stmt->bind_param("ss", $image_name, $_SESSION['user_id']);
在我的应用程序中,我可以为用户 upload
一个 image
。我正在维护 user_id
如下。
+----------+
| user_id |
+----------+
| ADM-0001 |
| ADM-0002 |
| DOC-0001 |
+----------+
问题是,如果我上传用户图片,它会在 table
中 update
all rows
。但是如果我手动将 user_id
更改为 1
而不是 ADM-0001
,那么它将更新特定的行。
以下是PHP代码,
<?php
session_start();
require_once "../auth/dbconnection.php";
if (isset($_POST['image'])) {
$croped_image = $_POST['image'];
list($type, $croped_image) = explode(';', $croped_image);
list(, $croped_image) = explode(',', $croped_image);
$croped_image = base64_decode($croped_image);
$image_name = time().'.png';
$stmt = $conn->prepare("UPDATE users SET image = ? WHERE user_id= ?");
$stmt->bind_param("si", $image_name, $_SESSION['user_id']);
$stmt->execute();
echo 'Image Uploaded Successfully.';
if($stmt->affected_rows === 0);
file_put_contents('blog/'.$image_name, $croped_image);
}else{
echo "ERROR: Could not prepare query: $stmt. " . mysqli_error($conn);
}
$stmt->close();
?>
实际上我想知道为什么会这样。请帮助我改进我的代码。提前致谢。
您告诉绑定参数方法将 user_id 转换为整数。 更改它以将其保留为字符串:
$stmt->bind_param("ss", $image_name, $_SESSION['user_id']);