gpt4 book ai didi

php - 使用 session 从查询中获取自动递增 id 并将该 id 用于另一个查询

转载 作者:行者123 更新时间:2023-11-30 22:40:28 24 4
gpt4 key购买 nike

我有一个注册页面,我最初有一个查询转到名为“用户”的数据库表。在“用户”表中,我有一个名为“id”的列,它是一个主要的自动递增字段。

然后我在我的原始查询下创建了一个新查询,该查询将发送到名为“付款状态”的数据库表。除了我尝试使用“users”表创建的“id”并将其放入我的“payment_status”数据库表中的“user_id”列之外,此查询中的所有内容都有效。它总是在其中输入 0 值。

if($validation->passed()) {
$user = new User();

$salt = Hash::salt(32);

try {
$user->create(array(
'firstname' => Input::get('firstname'),
'lastname' => Input::get('lastname'),
'email' => Input::get('email'),
'phone_number' => Input::get('phone_number'),
'username' => Input::get('username'),
'password' => Hash::make(Input::get('password'), $salt),
'salt' => $salt,
'joined' => date('Y-m-d H:i:s'),
'group' => 1
));
$success = "You have successfully created an account. We will notify you once the account has been approved. Then you will be able to login.";
echo $success;

} catch(Exception $e) {
die($e->getMessage());
}
} else {
foreach($validation->errors() as $error) {
$error;
}
}

第二个查询...

if(isset($_POST['submit'])){
$id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );
$user_id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );
$firstname = Input::get('firstname');
$payment_name = "Owes";
$payment_id = 1;
$payment_amount = 0;

//Query to add user's name to owes db table

$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("INSERT INTO payment_status (id, user_id, firstname, payment_name, payment_id, payment_amount) VALUES (?, ?, ?, ?, ?, ?)");

if ( false===$stmt ) {
// Check Errors for prepare
die(' Owes DB prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param('iissii', $id, $user_id, $firstname, $payment_name, $payment_id, $payment_amount);
if ( false===$stmt ) {
// Check errors for binding parameters
die('Owes DB bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();

if ( false===$stmt ) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
}

我正在尝试像这样从“用户”表中获取“id”...

$user_id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );

所以我试图从“用户”表中获取“id”并将其用于“payment_status”表中的“user_id”。

有没有人看到我做错了什么?

最佳答案

首先,您没有初始化(在您显示的代码中)新用户的 SESSION_ID。您成功地将用户插入到表 users 中,但您没有为他启动 session 。

其次,如果您想获取最后一个用户的 ID,您可能需要使用 mysqli_insert_id .

关于php - 使用 session 从查询中获取自动递增 id 并将该 id 用于另一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com