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

Wstawianie wartości pól wyboru do bazy danych MySQL za pomocą PHP

Pola wyboru są publikowane tylko wtedy, gdy są zaznaczone. Więc jeśli pole wyboru nie jest zaznaczone, nie pojawi się w $_POST . Ponadto generalnie nie należy podawać żadnych wartości polam wyboru. Zamiast tego używaj nazw, aby je rozróżnić.

W bazie danych zwykle reprezentuję pola wyboru z malutkimi intami i przechowuję 1 dla zaznaczonego i 0 dla niezaznaczonego.

// If your checkbox name is foo, this will convert it
// into a value that can be stored in the database
$foo = isset($_POST['foo']) ? 1 : 0;

Pamiętaj też, że html wymaga, aby identyfikatory były unikalne. Nie możesz więc mieć wielu elementów o tym samym identyfikatorze. I powinieneś oczyścić swoje dane wejściowe, aby zapobiec wstrzykiwaniu sql. Użyj mysql_real_escape_string() na danych wprowadzonych przez użytkownika, które trafiają do bazy danych.

Aktualizacja

Głównym problemem jest to, że w zapytaniu brakuje „) ' w ostatnim wierszu. Zapytanie powinno wyglądać tak

$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);

Zwróć uwagę na zamykający ') ' w ostatnim wierszu zapytania. Zauważ równieżże utworzenie zapytania w ten sposób, w zmiennej, pozwala na wyświetlenie utworzonego zapytania, dzięki czemu możesz zobaczyć, co dokładnie jest wysyłane do MySQL, a także możesz przetestować swoje zapytanie w innym środowisku (np. w phpmyadminie lub innej administracji bazy danych narzędzie).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBUtils nie wypełnia pól Java Bean

  2. Błąd:mysqladmin:odświeżenie nie powiodło się; błąd:„Nieznany błąd”

  3. ER_NOT_SUPPORTED_AUTH_MODE:Klient nie obsługuje protokołu uwierzytelniania żądanego przez serwer; rozważ aktualizację klienta MySQL

  4. Liczba kolumn nie odpowiada liczbie wartości w wierszu 1

  5. Jak używać warunkowego dla tego zapytania w Laravel 5.2?