【发布时间】:2017-05-31 12:59:05
【问题描述】:
我有一个相当复杂的 mysqli insert 语句要做,因为我需要从另外两个表中收集数据,并且还需要在一个语句中使用 php 中可用的一些变量。
这让我很困惑,因为准备好的语句的变量顺序。 - 我只插入了四个值,但为了获取 t1 和 t2 的值,我也在 bind_param 语句中引用了这三个附加变量。
我应该使用 $newJobRoleID,$newCompanyID,t1.id,t2.id 填充 jobRoleID,companyID,departmentID,competenceID
$addJobCompetencies = $con->prepare("
INSERT INTO jobRoleCompetencies (jobRoleID,companyID,departmentID,competenceID)
WITH t1 AS (SELECT id FROM departments WHERE companyID = ? AND department = ?),
t2 AS (SELECT id FROM competencies WHERE companyID = ?)
SELECT ?,?,t1.id,t2.id FROM t1,t2");
if($addJobCompetencies) {
$addJobCompetencies->bind_param('isiii', $newCompanyID,$row['department'],$newCompanyID,$newJobRoleID,$newCompanyID);
$addJobCompetencies->execute();
} else {
echo $con->error;
}
$addJobCompetencies->free_result();
我收到语法错误,但我不是 100% 确定原因。有人可以帮忙吗?
谢谢 丹
【问题讨论】: