【发布时间】:2015-02-22 05:51:25
【问题描述】:
我想在每个表中为刚注册的用户创建一行,id 必须与users 表中的相同。我试图使用$mysqli->insert_id 方法,但它没有用。代码只有INSERT INTO我的用户表...谁能告诉我我的代码的问题并解释$mysqli->insert_id,好吗? :(
谢谢。
PHP 代码
<?php
include_once("../init.php");
if (isset($_POST)) {
$username = trim($_POST['username']);
$password = crypt(trim($_POST['password']), 'st');
$email = trim($_POST['email']);
$email_code = md5($username + microtime());
$insert_stmt = $mysqli->prepare("INSERT INTO users (username, password, email, email_code, created) VALUES (?, ?, ?, ?, NOW())");
$insert_stmt->bind_param('ssss', $username, $password, $email, $email_code);
if (! $insert_stmt->execute()) {
header('Location: ../error.php?err=Registration failure: INSERT');
} else {
$whatajoke = $insert_stmt->insert_id;
$mysqli->query("INSERT INTO login_attempts (id) VALUES ('$whatajoke')");
$mysqli->query("INSERT INTO personal_detail (id, username) VALUES ('$whatajoke', '$username')");
$mysqli->query("INSERT INTO ip (id) VALUES ('$whatajoke')");
//email('htmlemail.php');
header('Location: ../register_success.php');
}
}
$mysqli->close();
?>
【问题讨论】:
-
你在哪里调用新的mysqli?
-
$whatajoke = $insert_stmt->insert_id; -
你没有 $insert_stmt = new mysqli("localhost", "my_user", "my_password", "world"); ?
-
您为什么不先阅读手册?!你不应该问 SO,只是因为你懒得看手册。