2017-05-21 10 views
0

私の割り当てのためにデータベースにストアドプロシージャをいくつか作成しようとしていますが、実行時に正しく動作しない理由を理解できません。動作しないストアドプロシージャ?

最初にテーブルにメンバーを追加しようとしています。それはうまく動作しますが、何も追加されません。それはすべてのために0を追加するだけです。

CREATE DEFINER=`root`@`localhost` PROCEDURE `AddMember`(IN `iFirstname` VARCHAR(15) CHARSET utf8, IN `iLastname` VARCHAR(15) CHARSET utf8, IN `iCPR` INT(10) ZEROFILL, IN `iPhone` INT(8) ZEROFILL, IN `iAddress` VARCHAR(50) CHARSET utf8, IN `iPostcode` INT(4) UNSIGNED, IN `iDateJoined` DATE, IN `iNewsletter` BOOLEAN) 
    MODIFIES SQL DATA 
    SQL SECURITY INVOKER 
INSERT INTO members (FirstName, 
        LastName, 
        CPR, 
        PhoneNumber, 
        Address, 
        Postcode, 
        DateJoined, 
        Newsletter) 

VALUES (iFirstname, 
     iLastname, 
     iCPR, 
     iPhone, 
     iAddress, 
     iPostcode, 
     iDateJoined, 
     iNewsletter) 

2番目はメンバーの削除です。 DELETE FROM WHERE行を自己で実行するとうまく動作しますが、ストアドプロシージャに置かれても動作しません。

CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteMember`(IN mID INT) 
BEGIN 
    DELETE FROM members WHERE MemberID = mID; 
END 

私はこれに新しいですし、具体的な答えを見つけることほとんどの例はさらに複雑で、特にとして困難であるとして、それらと間違っているものに、ビット混乱しています。

+0

の上に返さ:手順は、実際にはないように思えますあなたが信じている値を見て、あなたはそれに合格しています。どのように手続きを呼びますか?どのような環境でですか? mysqlのトラブルシューティングのゴールドスタンダードは 'mysql'コマンドラインクライアントです。それをテストして、それがうまくいくと思う。 mysql> USE your_database_name; '' mysql> CALL DeleteMember(1); 'プロシージャコードに明白な問題はありません。 –

答えて

0

こんにちは、あなたはストアドプロシージャを経由して値を格納することができるようになります自動インクリメント値を持つデータベーステーブルのidフィールドを作成し、これら二つの問題の間に共通のスレッドがあります

+0

メンバーテーブルには自動増分されたメンバーIDフィールドがあります。 – Wonx2150

+0

どのようにストアドプロシージャを実行していますか?あなたの呼び出しコードは何ですか?それともGUIを通してやっていますか? –

+0

私はphpMyAdminとその中のSQLタブを使用しています。 – Wonx2150

関連する問題