Обновление запроса не работает, если добавлен код для загрузки изображения и PDF.У меня один и тот же код для вставки и обновления, за исключением prepare
и execute
, запрос на вставку работает очень хорошо, запрос на обновление - нет.Я также включил enctype="multipart/form-data"
в форму, чтобы я мог также получать данные из $ _FILES.Более того, я использовал $_FILES['photo']['tmp_name']
и $_FILES['pdf']['tmp_name']
, чтобы переместить их, используя функции move_uploaded_file
move_uploaded_file($_FILES['photo']['tmp_name'], 'destination');
и move_uploaded_file($_FILES['pdf']['tmp_name'], 'destination');
<code>function edit_profile($pid)
{
if($_SERVER['REQUEST_METHOD']=='POST')
{
echo "<pre>";
print_r($_POST);
print_r($_FILES);
echo "
"; $ fullname = $ _POST ['fullname']; $ email= $ _POST ['email']; $ contact = $ _POST ['contact']; $ sel_post = $ _POST ['sel_post']; $ txt_post = $ _POST ['post']; $ post = ""; if (empty ($ txt_post)) {$ post = $ sel_post;} else {$ post = $ this-> add_new_post ($ txt_post);} if (empty ($ fullname) || empty ($ contact)) {array_push ($ this-> ошибки, MEND_FIELD_ERROR); возвращать;} if (! empty ($ _ FILES ['photo'] ['name'])) {$ photo = $ _FILES ['photo']; $ allow_ext = array ('png','jpg', 'pdf', 'jpeg', 'bmp', 'gif'); $ allow_size = 20000000; $ tmp_photo = $ photo ['tmp_name']; $ photo_size = $ photo ['size']; $ photo_error= $ photo ['error']; $ photo_ext = explode ('.', $ photo ['name']); $ photo_ext = strtolower (end ($ photo_ext)); if (in_array ($ photo_ext, $ allow_ext)){if ($ photo_size <= $ enabled_size) {$ photo_new_name = time (). "_". uniqid ('', true). '.'. $ photo_ext; $ upload_destination = './cdn/uploads/profile/'. $ photo_new_name;if (move_uploaded_file ($ tmp_photo, $ upload_destination)) {$ photo_to_db = $ photo_new_name;} else {array_push ($ this-> errors, STORAGE_ERROR);вернуть;}} else {array_push ($ this-> error, $ document_name. ':' .FILE_SIZE_ERROR);вернуть;}} else {array_push ($ this-> error, $ photo_ext. ':' .FILE_EXT_ERROR);вернуть;}} if (! empty ($ _ FILES ['pdf'] ['name'])) {$ pdf = $ _FILES ['pdf'];$ allow_pdf_ext = array ('pdf');$ позволено_pdf_size = 20000000;$ tmp_pdf = $ pdf ['tmp_name'];$ pdf_size = $ pdf ['size'];$ pdf_error = $ pdf ['error'];$ pdf_ext = explode ('.', $ pdf ['name']);$ pdf_ext = strtolower (end ($ pdf_ext));if (in_array ($ pdf_ext, $ разрешенный_pdf_ext)) {if ($ photo_size <= $ разрешенный_pdf_size) {$ pdf_new_name = time (). "_". uniqid ('', true). '.'. $. $ pdf_ext;$ upload_pdf_destination = './cdn/uploads/profile_pdf/'.$pdf_new_name;if (move_uploaded_file ($ tmp_pdf, $ upload_pdf_destination)) {$ pdf_to_db = $ pdf_new_name;} else {array_push ($ this-> errors, STORAGE_ERROR);вернуть;}} else {array_push ($ this-> error, $ document_name. ':' .FILE_SIZE_ERROR);вернуть;}} else {array_push ($ this-> error, $ photo_ext. ':' .FILE_EXT_ERROR);вернуть;}} $ Statement = $ this-> db-> prepare ("ОБНОВЛЕНИЕ" профилей` SET `полное имя` = ?,` email` = ?, `contact` = ?,` post` = ?, `photo` = ?,`pdf` =? ГДЕ` pid` =? ");if ($ Statement-> execute ([$ полное имя, $ email, $ contact, $ post, $ pid, $ pdf_to_db, $ photo_to_db])) {ExitThis :: send_to (URL.'profile / view_profile? id = '. $PID);} else {array_push ($ this-> errors, DATABASE_ERROR);вернуть;}}}
Приведенный выше код вернет меня на страницу view_profile, как если бы запрос на обновление работал правильно, однако до обновления данные остаются такими же - без изменений.
Редактировать: После отладки $statement
перед ее выполнением получите:
PDOStatement Object
(
[queryString] => UPDATE `profiles` SET `fullname`=?,`email`=?,`contact`=?,`post`=?, `photo`=?, `pdf`=? WHERE `pid`=?
)