Как выбрать идентификатор строки mysql для предложения WHERE в UPDATE, INSERT, DELETE через php?

Некоторое время я пытался понять, как получить идентификатор текущих пользователей. Чтобы иметь возможность обновлять, отображать или все, что угодно, делать в этой строке.

Ниже приведен пример сценария загрузки файла / обновления по идентификатору пользователя, структуре db и HTML.

Проблема: я могу обновить строку, но только если я укажу WHERE id = "" Как узнать текущий идентификатор пользователя и использовать его для обновления строки mysql?

PHP:

<?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size =$_FILES['image']['size']; $file_tmp =$_FILES['image']['tmp_name']; $file_type=$_FILES['image']['type']; $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); $img_path = ("images/".$file_name); $expensions= array("jpeg","jpg","png"); if(in_array($file_ext,$expensions)=== false){ $errors[]="extension not allowed, please choose a JPEG or PNG file."; } if($file_size > 2097152){ $errors[]='File size must be excately 2 MB'; } if(empty($errors)==true){ // connect to the database $servername = 'HOST'; $username = 'USER'; $password = 'PASS'; $dbname = 'TABLE'; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE users SET image_name='$file_name', image_size='$file_size', image_path='$img_path' WHERE user_id=2"; // Prepare statement $stmt = $conn->prepare($sql); // execute the query $stmt->execute(); // echo a message to say the UPDATE succeeded echo $stmt->rowCount() . " records UPDATED successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; move_uploaded_file($file_tmp,"images/".$file_name); echo "Success"; }else{ print_r($errors); } } ?> 

Структура базы данных:

  `user_id` int(5) NOT NULL AUTO_INCREMENT, `user_name` varchar(25) NOT NULL, `user_email` varchar(35) NOT NULL, `user_pass` varchar(255) NOT NULL, `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `image_type` varchar(25) NOT NULL, `image` longblob NOT NULL, `image_size` varchar(25) NOT NULL, `image_name` varchar(50) NOT NULL, PRIMARY KEY (`user_id`), UNIQUE KEY `user_email` (`user_email`) ) 

HTML:

 <form enctype="multipart/form-data" action="" method="post"> <input type="file" name="image"> <input name="upload_img" type="submit" value="Upload image"> </form> 

Оператор обновления не выполняется. Отсутствует $stmt->execute(); в конце.

Оператор обновления не будет выполняться, потому что в таблице нет поля «image_path».