Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zmienne $_POST nie działają z $_FILES i danymi wieloczęściowymi/formularzowymi

Musisz tylko przenieść swoje pliki wewnątrz instrukcji if i zmienić $_POST['filebutton'] do $_FILES['filebutton']

Za każdym razem, gdy przesyłasz plik, pliki są wypełniane w $_FILES zmienna globalna, a pozostałe pola zostaną wypełnione w $_POST zmienna globalna.

<?php
$uploaddir = "/var/www/img/pictures/";
if (isset($_FILES['filebutton'])) {  
    $uploadfile = $uploaddir . basename($_FILES['filebutton']['name']);
    move_uploaded_file($_FILES['filebutton']['tmp_name'], $uploadfile);
    $pictureUpdate = ", PICTURE_FILEPATH = '" . $_FILES['filebutton'] . "'";
} else {
    $pictureUpdate = "";
}
$connection = mysqli_connect("1.2.3.4","xxxx","xxxx","xxxx") or die("Caonnot connect to database.");
$update = "UPDATE table SET COLUMN1='" . $_POST['text1'] . "', COLUMN2='" . $_POST['text2'] . "' . $pictureUpdate . " where COLUMN3 = " . $_POST['text1'] . " ";
$update_sql = mysqli_query($connection, $update) or die("Cannot connect to mysql table. ". $update);
header("Location: " . $_SERVER['REQUEST_URL'] . "?success=1");
exit();

wypróbuj ten kod i zobacz, co on dla ciebie robi, jeśli to działa, a drugie nie, oznacza to, że w twoim kodzie jest coś więcej, aby rozwiązać problem.

<form name="myForm" METHOD="POST" ACTION="" enctype="multipart/form-data">
  <input type="text" name="text1" id="text1">
  <input type="text" name="text2" id="text2">
  <input type="file" name="filebutton" id="filebutton">
  <input type="submit" name="submit" id="submit">
</form>
<xmp><?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { var_dump($_FILES, $_POST); } ?></xmp>
array(1) {
  ["filebutton"]=>
  array(5) {
    ["name"]=>
    string(21) "scanParser.properties"
    ["type"]=>
    string(24) "application/octet-stream"
    ["tmp_name"]=>
    string(14) "/tmp/phpRm1Ytp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(264)
  }
}
array(3) {
  ["text1"]=>
  string(1) "1"
  ["text2"]=>
  string(1) "2"
  ["submit"]=>
  string(6) "Submit"
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kod błędu MySQL:1175 podczas UPDATE w MySQL Workbench

  2. MAMP MySQL nie rozpoznaje wartości my.cnf w OSX

  3. Naucz się korzystać z bazy danych MySQL

  4. Surowy SQL do SQLAlchemy

  5. Nie można połączyć się z serwerem MySQL na „localhost” (10061) po instalacji