Вставьте в одну таблицу, обновив другую и загрузив файл

Я пытаюсь обновить данные в одной таблице и в то же время вставить новую строку во вторую таблицу из формы PHP.

При нажатии submit появляется сообщение об ошибке:

Ошибка при сбое: вызов неопределенного метода mysqli :: exec ()

Ниже представлен мой запрос в форме отправки PHP:

$link->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8 try { $link->beginTransaction(); $q1 = $link->prepare("INSERT INTO liquor_licenses_2 ( username , outlet_number , license_date , license , scanned_license , permit_renewal , scanned_permit_renewal , identity_document , scanned_identity_document ) VALUES ( :username , :outlet_number , :license_date , :license , :scanned_license , :permit_renewal , :scanned_permit_renewal , :identity_document , :scanned_identity_document "); $q1->bindValue(':username', $username); $q1->bindValue(':outlet_number', $outlet_number); $q1->bindValue(':license_date', $license_date); $q1->bindValue(':liquor_license', $license); $q1->bindValue(':scanned_license', $scanned_license); $q1->bindValue(':permit_renewal', $permit_renewal); $q1->bindValue(':scanned_permit_renewal', $scanned_permit_renewal); $q1->bindValue(':identity_document', $identity_document); $q1->bindValue(':scanned_identity_document', $scanned_identity_document); $q1->execute(); $q2 = $link->prepare("UPDATE outlet_details SET username = :username , outlet_number = :outlet_number , mega_region = :mega_region , outlet_name = :outlet_name , address_0 = :address_0 , address_1 = :address_1 , address_2 = :address_2 , address_3 = :address_3 , address_4 = :address_4 , contact_number_1 = :contact_number_1 , contact_number_2 = :contact_number_2 WHERE outlet_number = :outlet_number"); $q1->bindValue(':username', $username); $q1->bindValue(':outlet_number', $outlet_number); $q2->bindValue(':mega_region', $mega_region); $q2->bindValue(':outlet_name', $outlet_name); $q2->bindValue(':address_0', $address_0); $q2->bindValue(':address_1', $address_1); $q2->bindValue(':address_2', $address_2); $q2->bindValue(':address_3', $address_3); $q2->bindValue(':address_4', $address_4); $q2->bindValue(':contact_number_1', $contact_number_1); $q2->bindValue(':contact_number_2', $contact_number_2); $q2->execute(); $link->commit(); } catch (Exception $e) { $link->rollback(); } if(mysqli_query($link, $q1)){ echo "Records added / updated successfully."; } else{ echo "ERROR: Could not able to execute $q1. " . mysqli_error($link); } header("refresh:2;url=../outlet_capture.php"); // close connection mysqli_close($link); ?> 

Я также хочу добавить к этому загрузку 3-х файлов (отсканированная лицензия, scanned_permit_renewal, scanned_identity_document). Я нашел приведенный ниже код, чтобы справиться с этим, но я не уверен, как его реализовать.

 foreach($_FILES['file'] AS $key=>$file) { $filename = $file['tmp_name']; $size = $file['size']; $newfile = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . date("Ymd_his") . "_" . $filename; move_uploaded_file($filename, $newfile); } 

Мне нужно, чтобы имя файла хранилось в моей БД, чтобы затем я мог ссылаться на файл, который был загружен на Сервер.