Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql中使用变量params进行选择的存储过程_Php_Mysql_Sql_Stored Procedures - Fatal编程技术网

Php mysql中使用变量params进行选择的存储过程

Php mysql中使用变量params进行选择的存储过程,php,mysql,sql,stored-procedures,Php,Mysql,Sql,Stored Procedures,我对MySQL中的存储过程有问题。我需要从PHP代码中调用它(我不能直接从代码中使用select)。该过程从表单接收参数,参数可以是字符串或数值(如果用户填写输入)或null(如果用户将输入留空) 我编写了这段代码,但它不起作用(过程和变量名是西班牙语的),并且没有显示任何错误 DELIMITER $$ CREATE PROCEDURE ps_BusquedaVarParam (IN nombre varchar(30), apellidos varchar(50), minEdad

我对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 ;
分隔符$$
创建过程ps_busqedavarparam
(名称为varchar(30)、apellidos varchar(50)、minEdad int、maxEdad int)
开始
从校友中选择*,其中
(nombre为null或nombre=nombre)和
(apellidos为null或Apellido=apellidos)和
(minEdad为null或Edad>=minEdad)和
(maxEdad为空或Edad请尝试:

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 ;
分隔符$$
创建过程ps_buskedavarparam(varchar中的nombre_(30),varchar中的apellidos_(50),int中的minEdad_,int中的maxEdad_)
开始
从校友中选择*,其中
(nombre_in为null或nombre=nombre_in)
和(apellidos_in为空或Apellido=apellidos_in)
和(minEdad_in为空或Edad>=minEdad_in)

和(maxEdad_in为null或edadc)您可以比“它不工作”更具体一些吗?您看到了什么错误?MySQL没有显示任何错误,但过程没有返回正确的数据。如果“发送方式”值为名称(nombre)它存储在表中,三个null。该过程显示一个空表,而不是正确的行。它可以工作,谢谢。我想问题出在变量名上,因为它与以小写开头的字段名相同。@DonnieRock请接受答案,这是在这里说谢谢并向其他人发出信号的通常方式问题已经解决。看看它是如何工作的