在php中,插入到三个表中,一次查询一个表
我正在尝试使用PHP一次插入、更新三个表,并使用一个表进行查询,因此我有一个表“commandetb”,它的外键为tables=fourniseurtb,marchetb,marchetb表的外键为datetb,因此我有一个表单,其中包含nomF、adrF的输入,fournisseurtb的telF还包括来自marchetb的objet_marche和来自datetb的最后日期限制和heure_限制。谁能帮我解决这个问题我很感激。以下是脚本:在php中,插入到三个表中,一次查询一个表,php,mysql,sql,Php,Mysql,Sql,我正在尝试使用PHP一次插入、更新三个表,并使用一个表进行查询,因此我有一个表“commandetb”,它的外键为tables=fourniseurtb,marchetb,marchetb表的外键为datetb,因此我有一个表单,其中包含nomF、adrF的输入,fournisseurtb的telF还包括来自marchetb的objet_marche和来自datetb的最后日期限制和heure_限制。谁能帮我解决这个问题我很感激。以下是脚本: $sql="INSERT INTO `co
$sql="INSERT INTO `commandetb`(`date_cmd`,ID_marche,ID_f) VALUES('hhhh',,);
INSERT INTO `fournisseurtb`(`nomF`,`adrF`,`telF`) VALUES(:znomF,:zadrF,:ztelF);
INSERT INTO `marchetb`(`objet_marche`,ID_date) VALUES(:zobjet,LAST_INSERT_ID()) ";
$stmt=$connectDB->prepare($sql);
$stmt->bindValue(':znomF',$nomSoc);
$stmt->bindValue(':zadrF',$adrSoc);
$stmt->bindValue(':ztelF',$telSoc);
$stmt->bindValue(':zobjet',$objet);
$exec=$stmt->execute();
if ($exec) {
$sql2="INSERT INTO `datetb` (`date_limite`,`heure_limite`) VALUES(:zdateLimite,:zheureLimite)";
$stmt2=$connectDB->prepare($sql2);
$stmt2->bindValue(':zdateLimite',$dateLimite);
$stmt2->bindValue(':zheureLimite',$heureLimite);
$exec2=$stmt2->execute();
if ($exec2) {
$_SESSION['succesMessage']='La lettre est ajouté avec succes';
}
}
else {
$_SESSION['errorMessage']='il ya un problem d\'ajout, verifiez svp!';
}
我使用存储过程,但问题没有解决: Mysql代码:
CREATE PROCEDURE add_lettre(nomf varchar(50), adrf varchar(255), telf varchar(25), objetMarche varchar(500), dLimite varchar(25), hLimite varchar(25))
$sql="CALL add_lettre(':znomF',':zadrF',':ztelF','zobjet',':zdateLimite',':zheureLimite')";
$stmt=$connectDB->prepare($sql);
$stmt->bindValue(':znomF',$nomSoc);
$stmt->bindValue(':zadrF',$adrSoc);
$stmt->bindValue(':ztelF',$telSoc);
$stmt->bindValue(':zobjet',$objet);
$stmt2->bindValue(':zdateLimite',$dateLimite);
$stmt2->bindValue(':zheureLimite',$heureLimite);
$exec=$stmt->execute();
if ($exec) {
$_SESSION['succesMessage']='La lettre est ajouté avec succes';
}
else {
$_SESSION['errorMessage']='il ya un problem d\'ajout, verifiez svp!';
}
开始
插入四个NISSEURTB(nomF、adrF、telF)值(nomF、adrF、telF);
插入marchetb(objet_marche,ID_date)值(objetMarche,LAST_INSERT_ID());
在datetb(date_limite,heure_limite)中插入值(dLimite,hLimite);
结束
PHP代码:
CREATE PROCEDURE add_lettre(nomf varchar(50), adrf varchar(255), telf varchar(25), objetMarche varchar(500), dLimite varchar(25), hLimite varchar(25))
$sql="CALL add_lettre(':znomF',':zadrF',':ztelF','zobjet',':zdateLimite',':zheureLimite')";
$stmt=$connectDB->prepare($sql);
$stmt->bindValue(':znomF',$nomSoc);
$stmt->bindValue(':zadrF',$adrSoc);
$stmt->bindValue(':ztelF',$telSoc);
$stmt->bindValue(':zobjet',$objet);
$stmt2->bindValue(':zdateLimite',$dateLimite);
$stmt2->bindValue(':zheureLimite',$heureLimite);
$exec=$stmt->execute();
if ($exec) {
$_SESSION['succesMessage']='La lettre est ajouté avec succes';
}
else {
$_SESSION['errorMessage']='il ya un problem d\'ajout, verifiez svp!';
}
我正在尝试插入、更新3个表,一次查询一个表,查询insert或Update。决定。一次更新与一个表连接的3个表,以便查询。MySQL中存在多个表更新。您可以编写存储过程,该过程接受所有数据并执行所有需要的操作,从而实现所需的任何逻辑。从PHP端只执行一个查询
CALL proc({parameters})