INSERT后更新MySQL表

时间:2013-08-08 14:28:10

标签: php mysql

我是新来的,对不起我的无知。

我有两个可以自行运行的php SQL查询:

INSERT INTO `table`.`lines` (
`id` ,
`raw_line` ,
`next_line` ,
`credit` ,
`timestamp`
)
VALUES (
NULL , '$_POST[raw_line]', '', '$_POST[credit]', NOW( )
);;

UPDATE `lines` SET `next_line` = CONCAT('When ', `raw_line`)

我不知道如何在php中组合/命令两者,以便在INSERT INTO之后自动处理UPDATE。 INSERT INTO有效但UPDATE没有。

感谢您的帮助!

5 个答案:

答案 0 :(得分:1)

只需在next_line上设置INSERT字段即可。无需单独查询。

INSERT INTO `table`.`lines` (
`id` ,
`raw_line` ,
`next_line` ,
`credit` ,
`timestamp`
)
VALUES (
NULL , "$_POST['raw_line']", "When $_POST['raw_line']", "$_POST['credit']", NOW( )
);

答案 1 :(得分:1)

我认为你需要这样的东西:

INSERT INTO `table`.`lines` (
`id` ,
`raw_line` ,
`next_line` ,
`credit` ,
`timestamp`
)
VALUES (
NULL, '".$_POST[raw_line]."',  'When ".$_POST[raw_line]."', '".$_POST[credit]."', NOW( )
);

答案 2 :(得分:0)

如果您想尝试一些不同的东西并扩展您的mysql技能,请尝试查看 triggers ,当数据插入第一个表时,这将在数据库上自动调用查询。

答案 3 :(得分:0)

连续运行两个查询。

$insertQuery = "INSERT INTO `table`.`lines` (
`id` ,
`raw_line` ,
`next_line` ,
`credit` ,
`timestamp`
)
VALUES (
NULL, '".$_POST[raw_line]."',  'When ".$_POST[raw_line]."', '".$_POST[credit]."', NOW( )
)";

if( mysqli_query($connection, $insertQuery) ){
  //on success run update query
  $updateQuery = "UPDATE `lines` SET `next_line` = CONCAT('When ', `raw_line`)";
  mysqli_query($connection, $updateQuery);
}

答案 4 :(得分:0)

创建trigger,请注意您必须是数据库的root用户:

DELIMITER $$
CREATE TRIGGER `update_next_line` BEFORE INSERT
ON `table`.`lines`
FOR EACH ROW BEGIN
    SET NEW.`next_line` = CONCAT('When ', NEW.`raw_line`);
END$$
DELIMITER ;