MySQL表仅第一次从EXT js提交+;PHP条目

MySQL表仅第一次从EXT js提交+;PHP条目,php,mysql,extjs,Php,Mysql,Extjs,我的MySQL有问题 我有一切设置,一切都很好,但当我提交我的表格,它将只工作,如果表是完全空的。如果表中已存储信息,则不会提交其他条目 这是mysql表 CREATE TABLE student (StudentID int NOT NULL, StudentFirst varchar(30), StudentLast varchar(30), StudentEmail varchar(254), StudentPhone varchar(12), StudentDOB date, Date

我的MySQL有问题

我有一切设置,一切都很好,但当我提交我的表格,它将只工作,如果表是完全空的。如果表中已存储信息,则不会提交其他条目

这是mysql表

CREATE TABLE student
(StudentID int NOT NULL,
StudentFirst varchar(30),
StudentLast varchar(30), 
StudentEmail varchar(254),
StudentPhone varchar(12),
StudentDOB date,
DateStarted date, 
LessonID int,
StudentAddress varchar(50), 
StudentCity varchar(30), 
StudentState char(2), 
StudentZip varchar(10), 
MusicInterest text);
alter table student add constraint StudentPK primary key AUTO_INCREMENT (StudentID); 
alter table student add constraint LessonFK foreign key (LessonID) references lesson(LessonID);
这是我的PHP

if(isset($_REQUEST['action'])){
switch($_REQUEST['action']){
        case 'submit_student':
            $first = $_REQUEST['StudentFirst'];
            $last = $_REQUEST['StudentLast'];
            $email = $_REQUEST['StudentEmail'];
            $phone = $_REQUEST['StudentPhone'];
            $dob = $_REQUEST['StudentDOB'];
            $datestarted = $_REQUEST['DateStarted'];
            $lessonid = $_REQUEST['LessonID'];
            $address = $_REQUEST['StudentAddress'];
            $city = $_REQUEST['StudentCity'];
            $state = $_REQUEST['StudentState'];
            $zip = $_REQUEST['StudentZip'];
            $musicinterest = $_REQUEST['MusicInterest'];


            $stmt = $dbh->prepare("insert into student (StudentFirst, StudentLast, StudentEmail,  StudentPhone, StudentDOB, DateStarted, LessonID, StudentAddress, StudentCity, StudentState, StudentZip,MusicInterest) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
            $stmt -> bindParam(1,$first);
            $stmt -> bindParam(2,$last);
            $stmt -> bindParam(3,$email);
            $stmt -> bindParam(4,$phone);
            $stmt -> bindParam(5,$dob);
            $stmt -> bindParam(6,$datestarted);
            $stmt -> bindParam(7,$lessonid);
            $stmt -> bindParam(8,$address);
            $stmt -> bindParam(9,$city);
            $stmt -> bindParam(10,$state);
            $stmt -> bindParam(11,$zip);
            $stmt -> bindParam(12,$musicinterest);
            $stmt -> execute();
        break;
还有我的EXTJs

function addStudent(){
        Ext.Ajax.request ({
        url: 'inc/template.php',
        params: {action: 'submit_student',

                                 StudentFirst:firstNameTextField.getValue(),
                                 StudentLast:lastNameTextField.getValue(),
                                 StudentEmail: emailTextField.getValue(),
                                 StudentPhone:phoneNumberTextField.getValue(),
                                 StudentDOB:Ext.util.Format.date(dateOfBirth.getValue(), 'Y-m-d'),
                                 DateStarted:dateStarted.getValue(),
                                 LessonID:dayTypeCombo.getValue(),
                                 StudentAddress:streetTextField.getValue(),
                                 StudentCity:cityTextField.getValue(),
                                 StudentState:stateTextField.getValue(),
                                 StudentZip:zipTextField.getValue(),
                                 MusicInterest:musicInterest.getValue()
                                 },
                                 method: 'POST',
        });
    tabPanel.activate(studentGrid);
    tabPanel.activate(scheduleGrid);
    clearStudentForm();
我不知道为什么它只提交了一次。这真令人费解。它显示了firebug中的帖子


非常感谢您的帮助

我不确定在

alter table student add constraint StudentPK主键自动递增(StudentID)

我还认为,应该对多个列使用这种语法。一列使用

CREATE TABLE student
(StudentID int NOT NULL PRIMARY KEY,
StudentFirst varchar(30),
...

为什么不先创建一个测试,创建一个只包含一列的表,然后尝试是否可以让它工作?然后添加不是主键的第二列,然后重试。然后添加外键?这些问题通常可以通过尝试在计算机上更快地解决,因为您实际上可以执行此操作。
extjs
是否向
php
文件发送请求?我还想说,通过添加错误处理,您可以大大改进代码。如果在添加行时有些东西不起作用,mysql通常会告诉原因,例如,如果违反了密钥约束或类似的内容。@hakre这是个好主意。我会记住的。@YogeshSuthar是的,它是从action/url获得请求的。你的语法帮了很多忙!我使用了createtablestudent(studentidint-notnull-AUTO_-INCREMENT主键,StudentFirst-varchar(30)),它的工作非常出色!