我有一个将数据插入SQL表的函数。
public function process_form(){
# Start function when submit button is clicked
if (isset($_POST['submit'])) {
# Assign form data
$host = $_SESSION['logged_user'];
$game = str_replace('g','',$_POST['game']);
$region = str_replace('r','',$_POST['region']);
$name = $_POST['match-name'];
$mode = str_replace('mode_0','',$_POST['mode']);
$bid = $_POST['bid'];
# SQL query
$q = '
INSERT INTO matches(
match_id,
host,
game,
region,
match_name,
match_mode,
started,
start_time,
finished,
finish_time,
validated,
team_a,
team_b,
bid
)
VALUES (
null,
?,
?,
?,
?,
?,
0,
null,
0,
null,
0,
null,
null,
?
);
';
# Process SQL
if ($stmt = $this->db->prepare($q)) {
$stmt->bind_param('iiisii',$host,$game,$region,$name,$mode,$bid);
$stmt->bind_result()
$stmt->execute(VARIABLE_GOES_HERE);
$stmt->close();
}
}
}#endfunc(process_form)
使用action属性收集所需数据的表单,将用户重定向到显示插入数据的下一页。
<form method="POST" action="match.php?id=VARIABLE_GOES_HERE">
我想在$ q中扩展我的SQL查询,这将为我提供当前创建的行的ID,然后在$ stmt-&gt; bind_result()填充变量中使用id。然后将在表单元素的action属性中添加。
答案 0 :(得分:1)
需要添加以下代码行:$last_id = $stmt->insert_id;
if ($stmt = $this->db->prepare($q)) {
$stmt->bind_param('iiisii',$host,$game,$region,$name,$mode,$bid);
$stmt->execute();
$last_id = $stmt->insert_id;
$stmt->close();
然后形成这个:
<form method="POST" action="match.php?id='.$last_id.'">