0

MySQL のストアド プロシージャに問題があります。PHP コードから呼び出す必要があります (コードから直接 select を使用することはできません)。プロシージャはフォームからパラメーターを受け取ります。そのパラメーターは、文字列または数値 (ユーザーが入力を入力した場合) または null (ユーザーが入力を空白のままにした場合) です。

このコードを作成しましたが、機能せず (手順と変数名はスペイン語です)、エラーも表示されませんでした。

DELIMITER $$

CREATE PROCEDURE ps_BusquedaVarParam
    (IN nombre varchar(30), apellidos varchar(50), minEdad int, maxEdad int)
BEGIN
  SELECT * FROM alumnos WHERE 
(nombre is null or Nombre = nombre) and 
(apellidos is null or Apellido = apellidos) and 
(minEdad is null or Edad>=minEdad) and 
(maxEdad is null or Edad<=maxEdad);
END $$

DELIMITER ;
4

1 に答える 1

2

それを試してください:

DELIMITER $$

CREATE PROCEDURE ps_BusquedaVarParam(nombre_in varchar(30), apellidos_in varchar(50), minEdad_in int, maxEdad_in int)
BEGIN
 SELECT * FROM alumnos WHERE 
(nombre_in is null or Nombre = nombre_in) 
and (apellidos_in is null or Apellido = apellidos_in) 
and (minEdad_in is null or Edad>=minEdad_in) 
and (maxEdad_in is null or Edad<=maxEdad_in);
END $$

DELIMITER ;
于 2013-09-05T19:27:47.310 に答える