node.js - MySQL 存储过程中变量使用Select...Into...获取值遭遇null,求助!
PHP中文网
PHP中文网 2017-04-17 14:20:39
0
2
644

帮忙看看哪里有问题,多谢了。
确定数据库里有记录。
程序代码,参数的赋值和顺序并没有错。

  var productCategoryID = helper.emptyUuid;
  var parentID = req.body.parentID ? req.body.parentID : helper.emptyUuid;
  var usePorc = "CALL usp_productCategory_create(?,?,?,?,?,@returnCode);";
  var useParams = [productCategoryID, req.body.name, req.body.details, parentID, req.session.adminid];

存储过程,出错了。

CREATE DEFINER=`root`@`localhost` PROCEDURE `usp_productCategory_create`(
    in param_porductcategoryid char(50)
    ,in param_name varchar(20)
    ,in param_details varchar(200)
    ,in param_parentID char(50)
    ,in param_userID char(50)
    ,out returnCode char(12))
BEGIN    
    DECLARE var_exists int;
    SET returnCode='003001000';        
    SELECT count(productCategoryID) into var_exists FROM productcategories WHERE productCategoryID=param_parentID group by productCategoryID;      
    IF var_exists=1 then    
        SET returnCode='003001001';    
    end if;
    set returnCode=CAST(var_exists AS char(12));//后来加的语句用来做测试,结果获取到Null
    select returnCode;
END
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
大家讲道理

おっと...朝見たとき...変数名の定義を間違えていました...


解決しました。
sublimeText を使用して以前に保存したコードを編集し、ctrl alt F を使用してコードをフォーマットすると、値にいくつかのスペースが自動的に追加されます。 parentID は元々は uuid ですが、スペースを追加すると長さは 82 になります。汗。
さらに、以前は mssql で実装されていたため、直接実行できます。ここで、mysql を変更し、parentID をストアド プロシージャに渡すと、応答は '00000000-0000-0000-0000-000000000000rn' になります。

リーリー
いいねを押す +0
小葫芦

後で判断し、xxx =null の場合は

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート