2017-06-26 38 views
-1

を失敗した結合表を更新しようとしたとき、私は、次のエラーを取得:外部キー制約がエラー

Notice: Undefined variable: id 
Notice: Undefined variable: course_id 

Cannot add or update a child row: a foreign key constraint fails (`school-project`.`students_courses`, CONSTRAINT `fk_courses` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE)0 Row inserted. 

3つの表は以下のとおりです。

# Name Type Collation Attributes Null Default Comments Extra 
1 id Primary Index int(11)   No None  AUTO_INCREMENT 
2 student_id Index int(11)   No None   
3 course_id Index int(11)   Yes NULL  


# Name Type Collation Attributes Null Default Comments Extra 
1 idPrimaryIndex int(11)   No None  AUTO_INCREMENT 
2 name varchar(255) latin1_swedish_ci  No None   
3 phone varchar(20) latin1_swedish_ci  No None   
4 email text latin1_swedish_ci  No None   
5 image text latin1_swedish_ci  No None  

# Name Type Collation Attributes Null Default Comments Extra 

1 idPrimaryIndex int(11)   No None  AUTO_INCREMENT 
2 nameIndex varchar(20) latin1_swedish_ci  No None   
3 descr text latin1_swedish_ci  No None   
4 image text latin1_swedish_ci  No None  

コード:

function joinTable() { 
    global $connection; 
    $join_table_sql = "INSERT INTO students_courses (student_id, course_id) 
VALUES ('$id', '$course_id')"; 
    if ($connection->query($join_table_sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $join_table_sql . "<br>" . $connection->error; 
    } 
} 

何が欠けていますか?なぜ私はそれらのエラーを取得するのですか? 。

+0

何の値$ idと$ course_idに入っていますか? これは対応するテーブルのstudent_idとcourse_idでなければなりません –

+0

あなたの関数に$ idと$ course_idという名前の変数はありません。 PHPの可変スコープ – CBroe

+0

ah yes:E_ALLにerror_reportingを設定し、display_errorsをオンにすると警告が表示されます(開発環境内) –

答えて

1

どのようにして$id$course_idを取得しますか?

最初のエラーがPHP Noticeであるにもあなたはこれがコメントする必要がありますが、私は評判を持っていません* sql

に空の値を挿入していない... :(

+0

私はポストのその部分を見ませんでした。確かに、トップダウンから問題を解決することが最善です。 2つの変数がありません最初の問題 それを解決し、さらに他の問題があるかどうかを参照してください、またはそれらが存在するときに消えるかもしれません。 –