搜尋

首頁  >  問答  >  主體

node.js - MySQL 存储过程中变量使用Select...Into...获取值遭遇null,求助!

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

  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中文网2784 天前632

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 14:22:39

    哎呀…早上第一眼…我變數名稱定義錯了…


    已解決。
    之前用 sublimeText 編輯儲存的程式碼,ctrl+alt+F格式化程式碼,value被自動加入了若干空格。 parentID 本來是uuid,加了空格後長度變82。汗。
    再者,之前是在mssql下實現,直接過。現在改mysql,parentID傳到預存程序裡回打回來是'00000000-0000-0000-0000-000000000000rn'

    <select name="parentID" class="form-control">
    <% categories[0].forEach(function(category){ %>
      <% if (category.productCategoryID==parentID) { %>
        <option value="<%= category.productCategoryID %>
                                                " selected>
      <% } else { %>
        <option value="<%= category.productCategoryID %>
                                                    ">
      <% }%>
    </select>

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:22:39

    做後判斷啊,if xxx =null then

    回覆
    0
  • 取消回覆