簡體   English   中英

我如何在mysql中為我的代碼編寫存儲過程

[英]how do i write a stored procedure for my code in mysql

不知道如何為下面的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;
      }
     }

您可以嘗試這樣的事情。

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中執行一些邏輯,但是您可以調整該功能以執行更多操作。 我知道有一種使用存儲過程返回數據的方法,但是對我來說,這樣做更容易。 函數用於返回數據,而過程則用於執行某些操作而不返回任何內容。 我希望這能夠幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM