2017-12-05 3 views
-2
$sql = "INSERT INTO deelnemer (Account_ID, BehaaldePunten, School_ID, Icon_ID) VALUES 
      ('Account_ID', (SELECT ID FROM account WHERE Gebruikersnaam = '$name'), 
      0, 
      ('School_ID', (SELECT ID FROM school WHERE Naam = '$school'), 
      ('Icon_ID', (SELECT ID FROM icon WHERE ID = 1)) 
      INNER JOIN account ON deelnemer.Account_ID = account.ID, 
      INNER JOIN school ON deelnemer.School_ID = school.ID"; 
      $result = $connection->prepare($sql); 
      $result->execute(); 

Hey Leute, ich bin ziemlich neu in SQL. Ich muss eine Zeile speichern, die einige Fremdschlüssel enthält, und ich habe schon einiges ausprobiert, aber nichts scheint zu funktionieren. Ich hoffe, Sie können mir helfenSo speichern Sie Fremdschlüssel (SQL)

xX

Dies ist die Fehlermeldung:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INNER JOIN account ON deelnemer.Account_ID = account.ID, INNER JO' at line 6' in C:\xampp\htdocs\GameBattle\test\Register_Modal.php:36 Stack trace: #0 C:\xampp\htdocs\GameBattle\test\Register_Modal.php(36): PDOStatement->execute() #1 C:\xampp\htdocs\GameBattle\test\login.php(84): require_once('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\GameBattle\test\Register_Modal.php on line 36

+1

Welches Problem Sie konfrontiert sind? Irgendwelche Fehler? –

+0

Der Fremdschlüssel, wie der Name schon sagt, muss bereits in seiner ursprünglichen Tabelle existieren. Wenn der Fehler nicht von dort kommt, wäre es klug, die Fehlermeldung hinzuzufügen, wie @HimanshuUpadhyay sagt. – F0XS

Antwort

0

Versuchen zu ersetzen:

('Account_ID', (SELECT ID FROM account WHERE Gebruikersnaam = '$name') 
      0, 
      ('School_ID', (SELECT ID FROM school WHERE Naam = '$school'), 

mit nur:

(SELECT ID FROM account WHERE Gebruikersnaam = '$name', 
      0, 
SELECT ID FROM school WHERE Naam = '$school' 
etc...) 
+0

Danke! Es funktioniert: D – Laura

+0

Danke @Laura. Bitte markieren Sie die Frage als beantwortet. :-) – Robin