0

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

我有两个单独工作的 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 之后自动处理更新。INSERT INTO 有效,但 UPDATE 无效。

谢谢你的帮助!

4

5 回答 5

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( )
);
于 2013-08-08T14:31:57.937 回答
1

我认为你需要类似的东西:

INSERT INTO `table`.`lines` (
`id` ,
`raw_line` ,
`next_line` ,
`credit` ,
`timestamp`
)
VALUES (
NULL, '".$_POST[raw_line]."',  'When ".$_POST[raw_line]."', '".$_POST[credit]."', NOW( )
);
于 2013-08-08T14:32:11.717 回答
0

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

于 2013-08-08T14:34:10.753 回答
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);
}
于 2013-08-08T14:37:20.980 回答
0

创建一个触发器,注意您必须是数据库的 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 ;
于 2013-08-08T14:39:59.803 回答