J'ai deux tables: employee
et employee_group
. Après insertion dans la première table, j'obtiendrai le dernier identifiant inséré de cette table. Ensuite, j'ai besoin d'insérer au tableau employee_group
. SQL:Mysql pas insérer des enregistrements
INSERT INTO employee_group (employee_id, group_id)
SELECT {$currentEmpId}, group_id
FROM employee_group
WHERE employee_id = {$anyId}
MySQL a été renvoyé TRUE. Mais les enregistrements n'ont pas été insérés.
J'ai noté que si essayer d'insérer des enregistrements pour l'employé inséré précédent, la requête sera réussie. Exemple:
- Insérer à l'employé, retournera
$currentEmpId
en dernier id Inséré INSERT INTO employee_group (employee_id, group_id) SELECT {$currentEmpId - 1}, group_id FROM employee_group WHERE employee_id = {$anyEmpId}
Ou si j'ai essayé dossiers d'insertion pour les employés et précédante en même temps, alors première requête sera infructueuse mais deuxième requête ok.
La base de données n'a pas de déclencheurs, de clés étrangères ou de fonctions. Rien, juste des données.
Je suis dans une impasse. UPD: Si je prends des enregistrements à php variable alors foreach it et insérer chaque enregistrement comme un élément comme INSERT INTO employee_group (employee_id, group_id) VALUES (xxx, yyy)
Je vais avoir ce problème aussi.
Qu'est-ce que le rapport du journal? – Peon
'{$ currentEmpId - 1}' va provoquer une erreur de syntaxe PHP, et certainement provoquer une erreur de syntaxe sql. –
Je suis désolé pour ce code, vraiment il y a 'sprintf (" .. SELECT% u .. ", $ currentEmpId - 1)' mais je l'ai remplacé pour mieux comprendre. – diNord