0
Ceci est ma procéduremysql procédure n'excecuting
DELIMITER //
CREATE PROCEDURE GET_CHECK_COURSES(IN distid int, IN `accescodeString` TEXT)
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS accesstmp (
`Id` INT NOT NULL AUTO_INCREMENT,
`accesscode` VARCHAR(100) NOT NULL,
PRIMARY KEY (`Id`)) ENGINE=InnoDB;
@query = "INSERT INTO accesstmp (`accesscode`) VALUES ('",accescodeString,"')";
PREPARE stmt1 FROM @query;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
@query1 = "SELECT
cde.code_status,
co.course_code,
co.course_name,
u.organization,
u1.email as licencinguser,
cul.status,
cul.learning_completion_date
FROM cdp_access_codes as cde
LEFT JOIN cdp_course as co ON cde.course_id = co.course_id
LEFT JOIN cdp_user as u ON u.user_id = cde.licensing_user_id
LEFT JOIN cdp_user as u1 ON u1.user_id = cde.user_id
LEFT JOIN cdp_accesscode_courses as cac ON cac.code_id = cde.code_id
LEFT JOIN cdp_user_licenses as cul ON cul.user_license_id = cac.course_subscription_id
JOIN accesstmp as act ON act.accesscode = cde.access_code
WHERE
cde.distributor_user_id = $distributorId
GROUP BY cde.access_code";
PREPARE stmt2 FROM @query1;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
END //
DELIMITER ;
Mais quand je l'exécution de cette i a une erreur de syntaxe
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@query = "INSERT INTO accesstmp (`accesscode`) VALUES ('",accescodeString,"')"; ' at line 10
mes parametrs sont comme cette valeur param distid = 24 et accescodeString est strinh "mmmm, ssss, eeee"
S'il vous plaît l'un m'aident. Merci d'avance.
Je ne vois pas nécessaire d'utiliser un [13,5 instruction SQL préparée Syntaxe] (https://dev.mysql.com/ doc/refman/5.7/fr/sql-syntax-prepare-statements.html) dans 'INSERT'. La variable '$ distributorId' devrait être un paramètre d'entrée. Utilisez [13.7.4 Syntaxe SET] (https://dev.mysql.com/doc/refman/5.7/fr/set-statement.html) pour affecter les [9.4 Variables définies par l'utilisateur] (https: // dev. mysql.com/doc/refman/5.7/fr/user-variables.html) ('\' @query \ '') utilisé. Utilisez la fonction ['CONCAT()'] (https://dev.mysql.com/doc/refman/5.7/fr/string-functions.html#function_concat) pour concaténer. – wchiquito