Spalten bei INSERT-Anweisung auslassen

FingerSkill

Erfahrenes Mitglied
Hi,
ich habe folgenden Code:
PHP:
@ $db = new mysqli('localhost', 'user', 'pw', 'db');
	  
	  if(mysqli_connect_errno())
	  {
	    echo "Fehler: Verbindung zur Datenbank nicht möglich. Versuchen Sie es zu einem späteren Zeitpunkt bitte nochmal.";
		exit;
	  }
	  
	  $password = sh1($password);
	  
	  $query = "insert into Members values
            (', '" . $nickname . "', '" . $loginname . "', '" . $password . "', '" . $email . "')";
      $result = $db->query($query);
      if ($result)
        echo $db->affected_rows . ' erfolgreich in die Datenbank eingetragen.';
		
      $db->close();
Nun hab ich eine Datenbank mit folgenden Spalten: ID, Nickname, Loginname etc.
Das Problem wie kann ich angeben in welche Spalte welche variable gespeichert werden soll da dazwischen auch spalten frei bleiben.

THX Fap
 
Du kannst vor VALUES du Spaltenname angeben.

PHP:
@ $db = new mysqli('localhost', 'user', 'pw', 'db'); 
       
      if(mysqli_connect_errno()) 
      { 
        echo "Fehler: Verbindung zur Datenbank nicht möglich. Versuchen Sie es zu einem späteren Zeitpunkt bitte nochmal."; 
        exit; 
      } 
       
      $password = sh1($password); 
       
      $query = "insert into Members (`nick`, `loginname`, `password`, `email`) values 
            (', '" . $nickname . "', '" . $loginname . "', '" . $password . "', '" . $email . "')"; 
      $result = $db->query($query); 
      if ($result) 
        echo $db->affected_rows . ' erfolgreich in die Datenbank eingetragen.'; 
         
      $db->close();

Tobee
 
Alternativ könntest du auch die INSERT INTO-Anweisung mit SET-Klausel anwenden:
Code:
INSERT INTO
        `Tabelle`
  SET
        `Spalte 1` = "Wert 1",
        `Spalte 2` = "Wert 2",
        …
        `Spalte n` = "Wert n"
Hierbei kannst du natürlich auch die Spalten nach Belieben angeben oder weglassen.
 
Zurück