2014-03-26 153 views
0

首先,我知道php mysql_ *函數已折舊,但我的主管要我使用無論。將數據插入新表

在這片代碼一切的運行良好,除了行:$插入=

"insert into match (t_id, s_id) values ('$tutor_id', '$student_id')"; 

的數據被打印出來使用線路正確:

 echo "<script>alert('$tutor_id, $student_id')</script>"; 

但是數據還是獲得不要進入桌面「比賽」。我無法弄清楚這一點

任何幫助將不勝感激。

mysql_query($insert); 

     $run_6 = mysql_query("select tutors.tutor_id, students.student_id 
          from tutors, students 
          where tutor_availability = '$student_availability' 
          AND (tutor_subject_1 = '$student_subject_1' 
          OR tutor_subject_1 = '$student_subject_2' 
          OR tutor_subject_2 = '$student_subject_2' 
          OR tutor_subject_2 = '$student_subject_1')"); 

while($row = mysql_fetch_row($run_6)) { 
    $tutor_id = $row[0]; 
    $student_id = $row[1]; 

    echo "<script>alert('$tutor_id, $student_id')</script>"; 

    $insert = "insert into match (t_id, s_id) values ('$tutor_id', '$student_id')"; 

    mysql_query($insert); 
} 

回答

1

matchreserved keyword。這意味着,如果你要的名字,你必須將它包裝在蜱表:

insert into `match` (t_id, s_id) values ('$tutor_id', '$student_id') 

這已提請您注意,如果你有錯誤檢查和代碼中的處理。至少在開發期間檢查mysql_error()

+0

謝謝你,你的傳奇故事。我應該在早些時候進行這些檢查,這將節省我很多麻煩 – bano590

+0

我不能同意@JohnConde關於在代碼中添加適當的錯誤處理的更多意見。在處理數據庫時,總是應該這樣做。檢查並處理服務器連接上的錯誤;檢查並處理DB選擇上的錯誤;檢查並處理查詢執行中的錯誤;等 –

+0

感謝傢伙,苛刻的經驗教訓。對於任何人在將來檢查這個'比賽'不起作用,所以我只是將表名改爲「匹配」 – bano590