我很难过!!
我有一个准备好的声明,里面有变量......
DELIMITER $$
create procedure select_or_insert(
IN unit VARCHAR(255),
IN STKEY VARCHAR(255),
IN mark INT(2))
begin
IF EXISTS (select * from studentmarks where STKEY = STKEY and unitcode = unit) THEN
UPDATE studentmarks SET unitmark = mark where unitcode = unit and STKEY = STKEY;
ELSE
INSERT INTO studentmarks (STKEY,unitcode,unitmark)
VALUES (STKEY,unit,mark);
END IF;
end
将其称为......
foreach ($_POST as $unit=>$mark){
if (!mysqli_query($con,"CALL select_or_insert('$unit','$STKEY','$mark')")) {
die('Error: ' . mysqli_error($con));
}
}
应该发生什么(或者我打算发生什么)...... 如果它们不存在则输入新记录,如果存在,则更新它们。
声明行为是: 当表为空时,它将创建新记录。它将在填充时更新记录,但仅更新现有记录。更改STKEY时不会创建新记录。这些变量似乎有效,因为它会输入新的记录。
我的语法是否正确?我是以正确的方式去做的吗?我提供了足够的信息吗?
提前致谢。