不确定如何为下面的php函数编写存储过程。希望编写一个存储过程来检查范围内的重复。
function check_for_duplication($job_no) {
global $connection;
$query = "SElECT COUNT (*) ";
$query .= "FROM jobs ";
$query .= "WHERE job_no = {$job_no}";
$query .= "AND start <= {$new_end}";
$query .= "AND end >= {$new_start}";
$job_set = mysqli_query($connection, $query);
confirm_query($job_set);
if($job = mysqli_num_rows($job_set)) {
return $job_set;
} else {
return null;
}
}
答案 0 :(得分:0)
您可以尝试这样的事情。
DROP FUNCTION IF EXISTS check_for_duplication
CREATE FUNCTION check_for_duplication
(varJobNo IN datatype,
varNewEnd IN datatype,
varNewStart IN datatype)
RETURNS CURSOR
BEGIN
// this is where we declare our variables
DECLARE var_cursor CURSOR;
// begin logic
SELECT COUNT (*) INTO var_cursor
FROM jobs
WHERE job_no=varJobNo AND
start<=varNewEnd AND
end>=varNewStart;
RETURN var_cursor;
END;
这只是一个基本功能,仍然需要你在你的PHP中做一些逻辑,但你可以调整功能来做更多。我知道有一种方法可以使用存储过程来返回数据,但我这样做更容易。函数用于返回数据,而过程是在不返回任何内容的情况下执行某些操作。我希望这会帮助你。