Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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错误:结果由多行组成_Php_Mysql_Sql - Fatal编程技术网

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,它就工作了!非常感谢你