
[英]MYSQL, PHP: INSERT INTO table2 from table 1 only if the project ID is not in second table
[英]Insert two table at a time mysql using php when id of second table is depend on first table
我想一次插入两个表。我可以通过 php 更新。
例如:-我将添加 id 为 1 的第一个表的行,我将添加第二个表的 3 行。我希望所有 3 行的 id 都为 1。但我不知道该怎么做?
意味着当第一个表被更新时,最后一行 id 应该被更新到第二个表到当时更新的所有行。
我的 php 代码是,
$sql="INSERT INTO run_test2(url,gh_url,platform,machine_size,browser,image_id,security_id,instance,timer,protocol,concurrency,rampup,iteration,time_out,cache) values('".$_POST["url"]."','".$_POST['gh_url']."','".$_POST['platform']."','".$_POST['inst_type']."','".$_POST['browsers']."','".$_POST['imageid']."','".$_POST['sgid']."','".$_POST['instance']."','".$_POST['timer']."','".$_POST['protocol']."','".$_POST['concurrency']."','".$_POST['rampup']."','".$_POST['iteration']."','".$_POST['time_out']."','".$_POST['radio']."');";
for($a=0;$a<3;$a++){
$sql .="INSERT INTO file_email2(filename,email) VALUES('url.jmx','vidya@gmail.com');";
}
//mysqli_query($conn,$sql);
if (mysqli_multi_query($GLOBALS['db'], $sql)) {
include_once "header.php";
echo "Your Test Saved ,Successfully!";
}
else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($GLOBALS['db']);
}
要创建我在以下查询中使用的表,
create table run_test2(id int not null auto_increment,
url varchar(255),
gh_url varchar(255),
platform varchar(255),
machine_size varchar(255),
browser varchar(255),
image_id varchar(255),
security_id varchar(255),
instance int,
timer varchar(255),
protocol varchar(255),
concurrency int,
rampup int,
iteration int,
time_out int,
cache varchar(255),
primary key(id));
alter table run_test2 modify column id int(11) auto_increment;
create table file_email2(id int,
filename varchar(255),
email varchar(255),
foreign key(id) references run_test(id));
DELIMITER $$
CREATE TRIGGER triggered_from_runtest2
AFTER insert ON run_test2
FOR EACH ROW
BEGIN
set @lastId=(select id from run_test2 order by id desc limit 1);
INSERT INTO file_email2(id) values(@lastId);
END$$
DELIMITER ;
它给出这样的输出:
在 run_test(第一张表)中,
在第二个表中:
但在第二个表中,我想要这样的输出:
我已经这样做了,它运行良好。 工作正常。
(1).我已经删除了触发器(DROP TRIGGER trigger_from_runtest2 ;) 2().在php中我已经这样使用了,
$sql="INSERT INTO run_test2(url,gh_url,platform,machine_size,browser,image_id,security_id,instance,timer,protocol,concurrency,rampup,iteration,time_out,cache) values('".$_POST["url"]."','".$_POST['gh_url']."','".$_POST['platform']."','".$_POST['inst_type']."','".$_POST['browsers']."','".$_POST['imageid']."','".$_POST['sgid']."','".$_POST['instance']."','".$_POST['timer']."','".$_POST['protocol']."','".$_POST['concurrency']."','".$_POST['rampup']."','".$_POST['iteration']."','".$_POST['time_out']."','".$_POST['radio']."');";
$concur_sql = "SELECT max(id) from run_test2;";
$result_concur_sql = mysqli_query($GLOBALS['db'],$concur_sql);
$row=mysqli_fetch_array($result_concur_sql);
//maximum concurrency
$max_con=$row['max(id)'];
$max_con=$max_con+1;
for($a=0;$a<3;$a++){
$sql .="INSERT INTO file_email2(id,filename,email) VALUES('".$max_con."','url.jmx','vidya@gmail.com');";
}
//mysqli_query($conn,$sql);
if (mysqli_multi_query($GLOBALS['db'], $sql)) {
include_once "header.php";
echo "Your Test Saved ,Successfully!";
}
else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($GLOBALS['db']);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.