Php 左连接和最后插入的ID
您好,我想用php构建一个注册和彩票应用程序 我想在用户注册后在我的奖品表中创建一个用户id,并且我想在用户购买门票时添加我的购买数量 所以我有两张桌子:Php 左连接和最后插入的ID,php,mysql,pdo,mysqli,Php,Mysql,Pdo,Mysqli,您好,我想用php构建一个注册和彩票应用程序 我想在用户注册后在我的奖品表中创建一个用户id,并且我想在用户购买门票时添加我的购买数量 所以我有两张桌子: prize , users prize : users_id , buy_count users : fn , ln , pass...usual staff 这是sctipt用户注册表: $sql = 'INSERT INTO users (id,fn,ls,psw) VALUES (:id,:fn,:ln,:psw); INSERT
prize , users
prize : users_id , buy_count
users : fn , ln , pass...usual staff
这是sctipt用户注册表:
$sql = 'INSERT INTO users (id,fn,ls,psw) VALUES (:id,:fn,:ln,:psw);
INSERT INTO prize (user_id, buy_count) VALUES (LAST_INSERT_ID(), 4)';
脚本给了我一个错误,怎么了?我想在用户注册时添加到奖励表中的用户id,我的查询有什么问题?
做这件事的正确方法是什么
更新: 这是我的代码:
<?php
try {
require_once 'inc/connect.php';
$sql =("
INSERT INTO users (fn,ls,psw) VALUES (:fn,:ln,:psw);
INSERT INTO prize (user_id) VALUES (LAST_INSERT_ID());
");
$form = $_POST;
$fn = $form['fn'];
$ln = $form['ln'];
$psw = $form['psw'];
$values = array(
':fn' => $fn ,
':ln' => $ln ,
':psw' => $psw
);
$stmt = $db->prepare($sql);
$stmt->execute($values);
if ( $stmt ){
echo "<p>Thank you. You have been registered</p>";
} else {
echo "<p>Sorry, there has been a problem inserting your details. Please contact admin.</p>";
}
$errorInfo = $db->errorInfo();
if (isset($errorInfo[2])){
$error = $errorInfo[2];
}
} catch (Exception $e) {
$error = $e->getMessage();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Database Connection with PDO</title>
<link href="../../styles/styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Connecting with PDO</h1>
<?php if(isset($error)) {
echo "<p>$error</p>";
}else {
?>
<?php
if ( empty( $_POST ) ) {
?>
<h1>Registration</h1>
<form name="" action="" method="POST">
<label for 'username'>Username: </label>
<input type="text" name="fn"/>
<label for 'password'>Password: </label>
<input type="password" name="psw"/>
<label for 'first_name'>First name: </label>
<input type="text" name="fn"/>
<br/>
<button type="submit">Submit</button>
</form>
<?php
} else {
print_r( $_POST );
}
?>
<?php } //error ?>
</body>
</html>
与PDO的数据库连接
与PDO连接
登记
用户名:
密码:
名字:
提交
仍然没有做我想做的。。。不向表和AI用户id添加任何数据
任何人都可以帮忙吗?简短回答:RTM
长答案(来自mysql文档)当生成新的自动增量值时,您还可以通过执行SELECT LAST_INSERT_ID()语句来获得它
您不是自动生成新ID,而是直接指定值。因此,您可以执行以下两种操作之一:从第一个查询中删除id列和value:id占位符,或者在第二个查询中使用相同的:id占位符。它们是两个独立的语句。也许应该分别执行它们。是否尝试使用不同的变量运行这两个查询?因此,将查询:)从一个变量中的两个拆分为每个变量的一个,并一次执行一个。请提供错误。可能重复的家伙:D我知道它们是两个单独的查询,我只是复制了它,我想让ed知道如何执行这两个查询并使其与一个submit一起工作+我想知道我的查询是否正确?因此我做到了:$sql='INSERT INTO users(fn,ls,psw)value(:fn,:ln,:psw)'$sqlp='INSERT INTO PRIVE(user_id)值(LAST_INSERT_id())',我仍然不知道如何用一个submito来执行这两个查询我知道了mysqli multi_query($query)我会做的你用mysqli还是pdo?如果您使用的是mysqli,那么您可以使用$mysqli->multi_query方法。为什么您要在一个PDO execute中执行两个查询?如果你想使用PDO,你需要根据GolezTrol和Michael Berkowski的评论来分离你的查询。否则,请使用mysqli多重查询。请发布您的错误,以便我们确定问题的实际位置。