使用php插入两个不同的mysql表
我有两个mysql表:details和detmages。“详细信息”表有一个名为id的列,该列是该表的主键,它也会自动递增。detimages表有一个名为detkey的列,这是一个外键,它链接到details表的id列 我试图实现的是:用户输入详细信息,并选择与他输入的详细信息相关的图像,然后将详细信息插入到详细信息表中,将与详细信息相关的图像插入到detimages表中,并将详细信息id作为外键 我可以插入这两个不同的表,但外键的那一个我卡住了。我不知道如何自动获取插入的详细信息的主键,然后使用它插入到detimages表中。多谢各位 这是我的密码:使用php插入两个不同的mysql表,php,mysqli,Php,Mysqli,我有两个mysql表:details和detmages。“详细信息”表有一个名为id的列,该列是该表的主键,它也会自动递增。detimages表有一个名为detkey的列,这是一个外键,它链接到details表的id列 我试图实现的是:用户输入详细信息,并选择与他输入的详细信息相关的图像,然后将详细信息插入到详细信息表中,将与详细信息相关的图像插入到detimages表中,并将详细信息id作为外键 我可以插入这两个不同的表,但外键的那一个我卡住了。我不知道如何自动获取插入的详细信息的主键,然后使
include 'DatabaseConfig.php';
if (isset($_POST['uploadImageBtn'])) {
$details = mysqli_real_escape_string($db, $_POST['details']);
$detail_query= "INSERT INTO details(description) values('$details')";
$run = $db->query($detail_query) or die("Error in saving detail".$db->error);
$uploadFolder = 'upload/';
foreach ($_FILES['imageFile']['tmp_name'] as $key => $image) {
$imageTmpName = $_FILES['imageFile']['tmp_name'][$key];
$imageName = $_FILES['imageFile']['name'][$key];
$result = move_uploaded_file($imageTmpName,$uploadFolder.$imageName);
// save to database
$image_query = "INSERT INTO detimages SET file_name='$imageName' " ;
$run = $db->query($image_query) or die("Error in saving image".$db->error);
}
if ($result) {
echo '<script>alert("Images uploaded successfully !")</script>';
}
}
包括“DatabaseConfig.php”;
如果(isset($\u POST['uploadImageBtn'])){
$details=mysqli\u real\u escape\u字符串($db,$\u POST['details']);
$detail_query=“插入细节(描述)值(“$details”)”;
$run=$db->query($detail\u query)或die(“保存细节时出错”。$db->Error);
$uploadFolder='upload/';
foreach($\u FILES['imageFile']['tmp\u name']作为$key=>$image){
$imageTmpName=$_文件['imageFile']['tmp_名称'][$key];
$imageName=$_文件['imageFile']['name'][$key];
$result=move_upload_文件($imageTmpName,$uploadFolder.$imageName);
//保存到数据库
$image\u query=“插入到DETMAGES集合文件中”\u name='$imageName';
$run=$db->query($image\u query)或die(“保存图像时出错”。$db->Error);
}
如果($结果){
回显“警报(“图像上传成功!”);
}
}
当您执行sql时,您会遇到类似的情况
$query=$pdo->prepare(sql);
$query->execute();
对于您使用的每种类型的SQL类型,都有一个命令
$query->lastinsertid()
也许对于pdo和SQLite来说是不同的
搜索查询->lastinsertid()
或者告诉我们更多关于您MySQL连接类型的信息,
是pdo、mysql、mysqli吗?您可以使用以下任何一种:
您应该提供更多详细信息和当前代码,以便我们可以帮助您编辑。另请参见,提供SQL语句和您得到的确切错误。阅读有关外键约束的更多信息:我添加了代码示例。thanksIt在问题中说他们使用MySQL。