【发布时间】:2013-09-05 18:51:53
【问题描述】:
我在 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 ;
【问题讨论】:
-
你能比“它不起作用”更具体吗?您看到了什么错误?
-
MySQL 没有显示任何错误,但程序没有返回正确的数据。如果 send as 值存储在表中的名称(名词)和三个 null,则过程显示一个空表而不是正确的行。
标签: php mysql sql stored-procedures