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

MYSQL nie dodaje informacji do mojej bazy danych

masz nieprawidłową składnię wstawiania, to jest poprawna składnia

INSERT INTO customers (field1, field2) VALUES (val1, val2);

ZOBACZ DOKUMENTACJĘ

również masz poważną podatność na wstrzyknięcie sql.. powinieneś zajrzeć TUTAJ o pomoc w tym zakresie

Polecam używanie sparametryzowanych zapytań i przygotowanych instrukcji... ten SO POST ładnie to zakrywa

EDYTUJ:

tylko dlatego, że nie tylko dostarczam link, tylko odpowiedź tutaj jest próbką co powinieneś zrobić

$mysqli = new mysqli("server", "username", "password", "database_name");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$qry = $mysqli->prepare('INSERT INTO customers (name, phone, type, section, email, address, business, service, notes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
$qry->bind_param('s', $name, $phone_num, $sec_num, $email, $cus_type, $business, $address, $service, $notes);

// can do it in one statement rather than multiples..
//$qry->bind_param('s', $name);
//$qry->bind_param('s', $phone_num);
//$qry->bind_param('s', $sec_num);
//$qry->bind_param('s', $email);
//$qry->bind_param('s', $cus_type);
//$qry->bind_param('s', $business);
//$qry->bind_param('s', $address);
//$qry->bind_param('s', $service);
//$qry->bind_param('s', $notes);

$qry->execute();
$qry->close();

EDYCJA2:

musisz być nowy w programowaniu... twoja instrukcja if() ZAWSZE zostanie wykonana... co oznacza, że ​​zawsze będziesz wstawiać do bazy danych... oto dlaczego...

if ($cus_type = $_POST['Corporate']){ tutaj $cus_type jest równy czemuś innemu znanemu jako $_POST['cusType'] ale w instrukcji if przypisujesz ją do $_POST['Corporate']... która zawsze będzie wykonywana, ponieważ jest to instrukcja prawdziwa. W ten sposób instrukcje są wykonywane logicznie.

if(boolean statement){
    //executes when true
};

if(true){
    //always executes
};

if('a' == 'b'){
    //will not execute
};

$a = 'a';
$b = 'b';
if($a == $b){
    //will not execute
};

if($a = $b){
    //will always execute because its assigning the value which is a boolean true statement.
};


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizowanie klucza podstawowego MySQL

  2. Które znaki faktycznie mogą spowodować wstrzyknięcie SQL w MySQL?

  3. Dlaczego nie mogę wyświetlić dwa razy tego samego wyniku za pomocą mysqli_fetch_assoc?

  4. aktualizowanie kolumn o numer kolejny mysql

  5. Laravel 5.3:Błąd składni lub naruszenie dostępu:1463 W klauzuli HAVING używane jest pole niegrupujące 'distance'