【发布时间】:2020-07-21 00:16:25
【问题描述】:
我正在努力解决一个问题,也许有人可以帮助我:)
在第一个查询中,我想将数据发送到为我生成 id 的第一个表,在第二个 quary 我想检索第一个 quary 生成的 id,在第三个 quary 我想使用该 id在第二个表中插入与第一个表相同 id 的其他数据。
我的问题是:除了 $id 之外,所有东西都可以正常插入,我错过了什么吗?
<?php
session_start();
//declaratie sessie variabelen
$username = $_SESSION['username'];
$voornaam = $_SESSION['voornaam'];
$achternaam = $_SESSION['achternaam'];
$firma = $_SESSION['firma'];
//database configuratie file
require('dbconfig.php');
//Declaratie post variabelen
$ticnaam = $_POST['ticket_naam'];
$ticonderwerp = $_POST['ticket_onderwerp'];
$ticassign = $_POST['ticket_voor'];
$bericht = $_POST['bericht'];
//proccesing
//procces first quary
$sql = "INSERT INTO `tickets`
(`naam`, `onderwerp`, `maker`)
VALUES ('$ticnaam', '$ticonderwerp', '$username')";
//retrieves the generated new id from the quary above
$sql2 = "SELECT id FROM tickets where onderwerp='$ticonderwerp' AND naam = '$ticnaam';";
$result2 = mysqli_query($mysqli,$sql2);
$id = mysqli_fetch_array($result2,MYSQLI_ASSOC);
//insertes the id into another quary
$sql3 = "INSERT INTO `berichten`
(`id`, `text`, `voornaam`,`achternaam`,`firma`)
VALUES ('$id', '$bericht', '$voornaam',
'$achternaam','$firma')";
//sql3 ok? user can continu
if($mysqli->query($sql3) == TRUE) {
require('email_na_ticketaanmaak.php')
?>
<script>alert('nieuw ticket is gemaakt');</script>
<?php
require('../procces_files/email_na_ticketaanmaak.php');
header('Location: ../home/index.php');
}else{
echo "Error: " . $sql . "<br>" . $mysqli->error;
}
$mysqli->close();
?>
【问题讨论】:
-
你需要
mysqli::$insert_idSee manual page here -
一方面,您从未对
$sql执行过INSERT 查询。 -
使用准备好的语句来防止 SQL 注入。
-
@FunkFortyNiner 哦,是的,错过了,我需要停下来喝下午茶
-
@RiggsFolly Heh,在这些艰难时期全神贯注是正常的。
标签: php html sql session mysqli