php pdo insert,更新到一个表中,同时将查询插入到另一个表中
这是桌子php pdo insert,更新到一个表中,同时将查询插入到另一个表中,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,这是桌子 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
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不支持一次或一次操作中使用多个触发器
关于我假设您正在寻找交易 只有在提交事务时,查询执行的所有更改才是活动的,如果某些操作失败,您可以简单地执行回滚,而不会发生任何事情 如果您在多个表中有insert,并且希望确保只有在所有查询都成功时才进行更改,那么这将非常有用 例如:
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
}
}
就这么简单。这不是你想要的吗
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";
}
}
基本上,您可以在函数中加倍查询,以便“手动”将跟踪插入日志表。抱歉,如果我误解了您的意思。是的,这是一种历史记录idia是tbl\u一个将被编辑和更新,但tbl\u tow是唯一的insert意味着每个操作或事务都将被插入,因此它将保留任何事务的历史记录。如果您在另一个表中添加其他语句以插入,会有什么问题!!!是$dbh->beginTransaction();或$stmt9->beginTransaction()@更新我的帖子。你需要使用你的“PDO”对象,但是它的名字我不知道,因为你在这里使用的是语句对象。我不太喜欢PDO扩展,所以我不能确定,但我假设它在您的案例中存储为$this->conn。请参阅:如果任何一个查询失败,此代码段都不会回滚查询。这实际上是两个正在执行的独立查询。如果回显
错误
,则只有一个或两个查询均未成功。如果只有一个查询成功,则该行在数据库中,而另一行不在,并且代码不知道哪个查询成功。