嗨,我是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");
}
}
}
答案 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;