从另一个表插入具有一个值的数据Mysql

时间:2018-10-16 05:11:47

标签: php mysql

我有一个问题,  如何将数据插入到数据库表(mysql)中,该表从php发布表格中检索所有数据,并从另一个表中检索出这样的数据?

PHP获取:

$nama           = $_POST['nama'];
$alamat         = $_POST['alamat'];
$jenis_kelamin  = $_POST['jenis_kelamin'];
$shift          = $_POST['shift'];

插入查询:

    INSERT INTO test (`id`, `nama`, `alamat`, `jenis_kelamin`, `shift`) VALUES 
('$nama','$alamat','$jenis_kelamin', select id from shift where shift_name = '$shift')"

这是我尝试运行以下代码时的输出:

  

无效的查询:您的SQL语法有错误;查看手册   对应于您的MariaDB服务器版本的正确语法   在行的'select from shift from id where shift_name ='pagi')'附近使用   1

3 个答案:

答案 0 :(得分:0)

尝试使用insert into select from

INSERT INTO test ( `nama`, `alamat`, `jenis_kelamin`, `shift`) 
   select '$nama','$alamat','$jenis_kelamin','$shift' from shift where shift_name = '$shift'

答案 1 :(得分:0)

insert语句的values部分中的子查询应该用括号括起来。

Insert into table_name values(col1, col2) values (val1, (select val2 from...));

答案 2 :(得分:0)

  

注意:您必须将括号括在您正在使用的select语句中。

基本上,当您将PHP值连接到mysql语句时,必须使用''将字符串值插入数据库。

<?php
$nama           = $_POST['nama'];
$alamat         = $_POST['alamat'];
$jenis_kelamin  = $_POST['jenis_kelamin'];
$shift          = $_POST['shift'];

$query = "INSERT INTO test (`id`, `nama`, `alamat`, `jenis_kelamin`, `shift`) VALUES ('".$nama."','".$alamat."','".$jenis_kelamin."', (SELECT id from shift where shift_name = '".$shift."'))";
?>