簡體   English   中英

如何在php中調用存儲過程?

[英]How do i call stored procedure in php?

我想將存儲過程用於php中的insert語句。

我創建了一個sp,現在我想在我的php文件中調用它。

下面是我的sp:

DELIMITER $$
DROP PROCEDURE IF EXISTS `radiolocous`.`insert_gmr`$$
CREATE PROCEDURE `storedproc_test`.`insert_gmr`
(
IN version varchar(250),
IN visitorId VARCHAR(250),
IN dwellTime VARCHAR(250),
IN poiId VARCHAR(250),
IN srId VARCHAR(250),
IN zoneId VARCHAR(250),
IN poiProximityConfidence VARCHAR(250),
IN zoneProximityConfidence VARCHAR(250),
IN poiPresenceConfidence VARCHAR(250),
IN zonePresenceConfidence VARCHAR(250),
IN normalizedTime VARCHAR(250)
)
BEGIN


INSERT INTO gmr(version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime)
values(version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime);
END $$
DELIMITER;

我的插入語句類似於:

$result = db_query("INSERT INTO gmr(version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime)
                                VALUES ('" . implode("', '", $array) . "')")
                                or die('Connect Error: ' . mysqli_connect_error());

我如何在PHP中調用sp,因為我在json中收到值,所以我沒有手動插入它,但是我將sp參數指定為IN

這個對嗎?

我嘗試過:

$result = db_query("CALL insert_gmr('" . implode("', '", $array) . "')") or die('Connect Error: ' . mysqli_connect_error());

我收到沒有任何描述的連接錯誤。

是我的sp中的問題還是我在我的php中調用的方式?

我認為您的錯誤在於嘗試調用過程的方式上。

在您的情況下,您應該執行以下操作:

$result = db_query("CALL insert_gmr('".implode("', '", $array). "')"))

這樣,只要$ array中的值與存儲過程中的參數一樣多,調用就正確了

要了解有關在PHP中使用存儲過程的更多信息,請參考文檔: http : //php.net/manual/en/mysqli.quickstart.stored-procedures.php

暫無
暫無

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

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