我想一次插入两个表。我可以通过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(第一张表)中,
在第二张表中:
但是在第二个表格中,我希望输出如下:
答案 0 :(得分:0)
我这样做了它完全正常工作。工作正常。
(1)。我已经删除了触发器 (DROP TRIGGER triggered_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']);
}