J'ai une instruction d'insertion mysqli assez complexe à faire, car j'ai besoin de rassembler des données provenant de deux autres tables et d'utiliser également certaines variables disponibles dans php en une seule instruction.Syntaxe de requête MySQLi avancée
Cela me perturbe à cause de l'ordre des variables pour les instructions préparées. - J'insère seulement quatre valeurs, mais pour obtenir les valeurs de t1 et t2, je me réfère à ces trois variables supplémentaires dans l'instruction bind_param.
Je devrais peuplant jobRoleID, COMPANYID, departmentId, competenceID avec newJobRoleID $, $ newCompanyID, t1.id, t2.id
$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();
Je reçois une erreur de syntaxe, mais je ne suis pas sûr à 100% Pourquoi. Quelqu'un peut-il aider?
Merci Dan