Skip to content
Advertisement

Update specific row in MYSQL [closed]

In my application I can be able to upload an image for a user. I am maintaining the user_id as follows.

+----------+
| user_id  |
+----------+
| ADM-0001 |
| ADM-0002 |
| DOC-0001 |
+----------+

The problem is, if I will upload the user image, it will update all rows in the table. But if I manually changed the user_id as 1 instead of ADM-0001, then it will update the specific row.

Following is the PHP code,

<?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();
?>

Actually I a, wondering why it was happening. Please help me improve my code. Thanks in advance.

Advertisement

Answer

You are telling the bind-param method to convert the user_id into an integer. Change it to keep it as a string:

$stmt->bind_param("ss", $image_name, $_SESSION['user_id']);
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement