2016-12-15 47 views
1

我從phpmyadmin中創建了這個程序,但它不起作用,我將record_id中的最後一個詞替換爲指定的字符串ID並且工作,但是當我使用參數不工作。Mysql程序,使用where子句中的參數

DROP PROCEDURE `prcd_update_record`; 
CREATE DEFINER=`root`@`localhost` 
PROCEDURE `prcd_update_record`(
    IN `talep_id` VARCHAR(24), 
    IN `vall` INT(10) 
) 
NOT DETERMINISTIC 
MODIFIES SQL DATA SQL 
SECURITY INVOKER 

UPDATE  `talep_malzeme` 
SET   `kalan_miktar` = vall 
WHERE  `talep_malzeme`.`id` = talep_id; 

的我執行這樣的:

SET @p0='33'; SET @p1='57fb7911ea91e9efa'; CALL `prcd_update_record`(@p0, @p1); 
+0

你正在得到什麼錯誤?添加您收到的錯誤 –

回答

2
DROP PROCEDURE IF EXISTS `prcd_sevk_toplam`; 
create procedure prcd_sevk_toplam(talep_id int, vall VARCHAR(255)) 
BEGIN 
    UPDATE `talep_malzeme` SET `kalan_miktar` = vall WHERE `talep_malzeme`.`id` = talep_id; 
END; 

希望這會幫助你。

1

看起來你有錯誤的參數順序,儘量

CALL `prcd_sevk_toplam`(@p1, @p0); 
1

你應該爲每個你的參數定義的參數提供適當的值。您的程序接受如下參數

PROCEDURE `prcd_sevk_toplam`(
    IN `talep_id` VARCHAR(24), 
    IN `vall` INT(10) 

而且您正在將它們都設置爲varchar。這可能是這個問題。你應該將它們設置爲

SET @p0=33; 
SET @p1='57fb7911ea91e9efa'; 
CALL `prcd_sevk_toplam`(@p1, @p0);