想使用存储过程在 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”,那么它将无法在 android 或 ios 模拟器或设备上运行,因为它具有不同的 IP,即使它在“localhost”上运行也是如此。
将服务器的主机从“localhost”更改为实际的 IP 地址并重新构建项目。 IP 地址将传播到设备的 wlclient.properties/worklight.plist 文件,其中存储了服务器连接信息。还要双重验证设备和服务器在同一个网络上。
【讨论】:
以上是关于想使用存储过程在 mysql 数据库中插入值的主要内容,如果未能解决你的问题,请参考以下文章