DROP PROCEDURE `ModificarUsuario`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `ModificarUsuario`(
IN `Aid` INT,
IN `Aced` VARCHAR(100),
IN `Anombre` VARCHAR(100),
IN `Acargo` VARCHAR(100),
IN `Acedula` VARCHAR(100),
IN `Ausuario` VARCHAR(100),
IN `Apass` VARCHAR(100),
OUT `res` VARCHAR(10) )
BEGIN
SELECT COUNT(usuario) INTO res FROM `usuario` WHERE `cedula`=Aced and `id`<>Aid;
IF res =0 THEN
UPDATE `usuario` SET cedula=Aced, nombre=Anombre, cargo=Acargo, usuario=Ausuario, contrasena=Apass WHERE cedula=Acedula;
END IF;
END
Run Code Online (Sandbox Code Playgroud)
当我使用这个程序时,我收到错误"预期8,得到7".我不明白这一点,如果我们看代码有7个输入参数和一个输出参数.似乎在调用程序时也需要指定out参数,任何想法为什么?
我使用的是docker,我有一个Laravel Framework 5.5.25容器和其他带有mysql Ver 8.0.11 for Linux on x86_64(MySQL社区服务器 - GPL)的容器.在我的docker compose配置中我有这个:
version: "2"
services:
mysql:
image: mysql
ports:
- "3307:3306"
command: --sql_mode=""
Run Code Online (Sandbox Code Playgroud)
因此,当Laravel尝试连接到MySql时出现此错误:
SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法(SQL:select*from