Php MySql错误:结果由多行组成
我有一个错误:Php MySql错误:结果由多行组成,php,mysql,sql,Php,Mysql,Sql,我有一个错误:结果由多行组成,但我找不到它。 条目id_用户在其表中只有一条记录 程序如下: CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_user_deep`(id_user int(11)) BEGIN declare nome_loc varchar(45); declare cognome_loc varchar(45); select nome,cognome into nome_loc,cognome_loc from u
结果由多行组成,但我找不到它。
条目id_用户在其表中只有一条记录
程序如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_user_deep`(id_user int(11))
BEGIN
declare nome_loc varchar(45);
declare cognome_loc varchar(45);
select nome,cognome
into nome_loc,cognome_loc
from user
where id_user=id_user;
delete from Radius.radcheck where username in (
select mac_address from machine where id_user =id_user);
delete from Radius.radreply where username in (
select mac_address from machine where id_user =id_user);
delete from machine_ip where id_machine in (
select id_machine from machine where id_user=id_user);
delete from machine where id_user = id_user;
delete from document where id_user=id_user;
delete from user where id_user=id_user;
insert into log_generic values(
NULL,
'USER',
'Delete User Deep',
(select concat ('User: ',id_user,' Name: ',cognome_loc,' Prename: ',nome_loc)),
now());
END
问题在于这句话:
select nome,cognome
into nome_loc,cognome_loc
from user
where id_user=id_user;
如果有多行,这将返回一个错误。错误记录在案
这是因为参数名与列名相同。id\u用户
指的是比较两侧的列
查询应该如下所示:
select nome, cognome
into nome_loc, cognome_loc
from user
where id_user = param_id_user;
始终在参数名和变量名前面加上前缀,以区别于列名。这是MySQL代码,所以我要删除sql server标记。选中
select concat('User:',id_User,'Name:',cognome_loc,'Prename:',nome_loc)
如果我去那里,我不会从这里开始。是的,戈登,我检查了它,发现了这个问题,我将id\u user替换为id\u user\u in,它就工作了!非常感谢你