2014-03-26 111 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