想使用存储过程在 mysql 数据库中插入值

Posted

技术标签:

【中文标题】想使用存储过程在 mysql 数据库中插入值【英文标题】:want to insert values in mysql database using stored procedure 【发布时间】:2014-04-12 07:32:55 【问题描述】:

我在我的 worklight 6.0 中创建了一个 mysql 适配器 我想使用存储过程 addproduct 在 mydql 数据库中插入数据。谁能告诉我调用该过程的 javascript 是什么。

我的 main.js 文件

    function wlCommonInit()

    

    function addProductRec()

     

    var validate = true;

   var query = ;

   if ($("#prod_name").val() != "") 
        query.productName = $("#prod_name").val();
    else 
        validate = false; 
        alert("invalid");
   

   if ($("#prod_model").val() != "") 
        query.Model = $("#prod_model").val();
    else 
        validate = false; 
   

   if ($("#prod_qty").val() != "") 
        query.Qty = $("#prod_qty").val();
    else 
        validate = false;
   

   if ($("#prod_price").val() != "") 
        query.price = $("#prod_price").val();
    else 
        validate = false;

   

   if (validate) 
       var queryData = JSON.parse(JSON.stringify(query));

       WL.Client.invokeProcedure(
                adapter : "Product",
  procedure : "addProduct",
  parameters : [ queryData.productName, queryData.Qty,
                      queryData.Model, queryData.price ]
  , 
                  onSuccess : function(result) 
                  $.mobile.changePage("#list", 
          transition : "slide",
   reverse : false,
   changeHash : false
           );
                  alert("added");
  ,
    onFailure : failureCallback

  );
  else 
            alert("All fields required");
 

我的适配器.js

    var addStatement = WL.Server.createSQLStatement("insert into product "+
    " (productName, Qty, Model, price) values (?, ?, ?, ?)");

    function addProduct(productName,Qty,Model,price) 

return WL.Server.invokeSQLStatement(
    preparedStatement : addStatement,
    parameters : [productName,Qty,Model,price]
);

【问题讨论】:

添加您当前的代码。 在我看来你已经做到了?您拥有调用适配器过程的客户端代码,并且拥有将数据插入数据库的适配器函数。你到底在问什么……? 但是当我调用适配器时,它会将值存储在数据库中。但是当我在移动模拟器上运行它并提交值时,它会回调失败。 您的设备/模拟器是否与服务器连接到同一网络? 是的,它在同一个网络上。它在本地主机上。 【参考方案1】:

我不知道为什么贾辰的答案被删除了,这是正确的答案,甚至被问题的作者在 cmets 中确认了!

重复:

如果您的构建目标是“localhost”,那么它将无法在 androidios 模拟器或设备上运行,因为它具有不同的 IP,即使它在“localhost”上运行也是如此。

将服务器的主机从“localhost”更改为实际的 IP 地址并重新构建项目。 IP 地址将传播到设备的 wlclient.properties/worklight.plist 文件,其中存储了服务器连接信息。还要双重验证设备和服务器在同一个网络上

【讨论】:

以上是关于想使用存储过程在 mysql 数据库中插入值的主要内容,如果未能解决你的问题,请参考以下文章

怎么写存储过程,向数据库中批量插入数据?

mysql存储过程批量向表插入数据

mysql存储过程,选择最大值并插入值并分配给变量

MySQL存储过程从列表中插入多行

我可以在存储过程中使用 if 语句将值插入到表中吗?

如何使用 mysql 数据库中的存储过程在数据库中插入图像 url?