新手PHP MySQL问题

时间:2011-07-31 10:21:26

标签: php mysql insert

嗨,我是php mysql开发的新手。我在Windows上使用wamp服务器。 php5.3.4,mysql5.1,apache2.2。我尝试执行此代码,但我得到的只是error.php页面。如果表有auto_increment ids,有没有特殊的方法插入mysql?在代码中我给id的NULL值。

请帮助,请原谅我的noob问题!

function addMember($firstname, $lastname, $email, $password, $bday, $gender, $maritalStatus, $education, $occupation) {
    $personalQ = "INSERT INTO users_personal_profile VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    if($stmt3 = $this->conn->prepare($personalQ)) {
        $stmt3->bind_param('sssssssss', $firstname, $lastname, $email, $password, $bday, $gender, $education, $occupation, $maritalStatus);
        $stmt3->execute();
        if($stmt3->fetch()) {
            $stmt3->close();
            header("location: intermediate.php");
        }
        else {
            $stmt3->close();
            header("location: error.php");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

冷凝评论:

要了解正在发生的事情,您可以调整脚本:

function addMember($firstname, $lastname, $email, $password, $bday, $gender, $maritalStatus, $education, $occupation) {
   $personalQ = "INSERT INTO users_personal_profile VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
   if($stmt3 = $this->conn->prepare($personalQ)) {
        $stmt3->bind_param('sssssssss', $firstname, $lastname, $email, $password, $bday, $gender, $education, $occupation, $maritalStatus);

        if( $stmt3->execute() ){
            $stmt3->close();
            header("location: intermediate.php");
        }
        else {
            echo $stmt3->error;
            //    header("location: error.php"); // can't output headers after outputting something, but it's just for debugging
        }
    }
}

如果存在实际错误及其内容,那么应该让您了解一下。

应在db方案中设置autoincrement-field。你的桌子是如何定义的?第一个字段是否实际标记为自动增量? (如果是,则null应该有效。) 您还可以直接在数据库中执行查询,看看它是如何工作的。 (您可以在控制台中使用phpmyadmin或navicat或sql。)

如果您需要代码中的自动增量值,则可以使用$mysqli_stmt->insert_id;

访问它