2017-12-05 12 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(); 

こんにちは、私はかなりSQLに新しいです。私はいくつかの外部キーを含む行を保存する必要があり、私はいくつかのものを既に試してみましたが、何も動作していないようです。私はあなたがこのエラーメッセージでのxX外部キーを保存する方法(SQL)

を私に役立つことを願って:

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

あなたが直面しているどのような問題?エラーはありますか? –

+0

名前のような外部キーは、元のテーブルにすでに存在している必要があります。エラーがそこから来ないなら、@HimanshuUpadhyayが言うように、エラーメッセージを追加することが賢明でしょう。 – F0XS

答えて

0

は交換してみてください:

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

だけで:

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

ありがとう!働いています:D – Laura

+0

ありがとう@Laura。質問に回答してください。 :-) – Robin

関連する問題