Skip to content

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,


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']);

    echo 'Image Uploaded Successfully.';

    if($stmt->affected_rows === 0);

      file_put_contents('blog/'.$image_name, $croped_image);


        echo "ERROR: Could not prepare query: $stmt. " . mysqli_error($conn);



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



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