这是表格
tbl_one
id---int
name-var
tbl_tow
id----int
name--var
这是如何插入php pdo,
public function insert() {
$stmt9 = $this->conn->prepare("INSERT into tbl_one (name) VALUES (:name)");
$stmt9->bindParam(':name' ,$this->name);
$stmt9->execute();
if($stmt9){
echo "Added";
} else {
echo "error";
}
}
这里idia是一次插入两个表,一次从两个表中删除。
这可能吗
注意:我不能使用触发器,因为我已经设置了其他情况,因此mysql不支持多次触发一次或动作。
问候
答案 0 :(得分:1)
这不是你想要的吗?
public function insert() {
$stmt9 = $this->conn->prepare("INSERT into tbl_one (name) VALUES (:name)");
$stmt9->bindParam(':name' ,$this->name);
$stmt9->execute();
$stmt10 = $this->conn->prepare("INSERT into tbl_one (name) VALUES (:name)");
$stmt10->bindParam(':name' ,$this->name);
$stmt10->execute();
if($stmt9 && $stmt10){
echo "Added";
} else {
echo "error";
}
}
基本上,您将函数内部的查询加倍,因此您可以“手动”将路径插入到日志表中。对不起,如果我误解了你。
答案 1 :(得分:0)
我认为您正在寻找交易。
查询执行的所有更改只有在您提交事务时才会生效,如果出现问题,您可能只是进行回滚,根本不会发生任何事情。
如果您在多个表中插入并希望确保仅在所有查询都成功时进行更改,这将非常有用!
示例:
public function insert() {
//This will start a transaction and turn-off auto-commit of queries.
$this->conn->beginTransaction();
$stmt9 = $this->conn->prepare("INSERT into tbl_one (name) VALUES (:name)");
$stmt9->bindParam(':name' ,$this->name);
$stmt9->execute();
$stmt10 = $this->conn->prepare("INSERT into tbl_two (name) VALUES (:name)");
$stmt10->bindParam(':name' , $someOtherName);
$stmt10->execute();
if($stmt9 && $stmt10){
$this->conn->commit(); //This will save your changes
} else {
$this->conn->rollBack(); //This will undo your changes
}
}
这很简单。