![](/img/trans.png)
[英]Update query return 1 ,but can't update in database using MSSQL in php
[英]Using mssql and node-sql to UPDATE
我正在使用mssql和node-sql來構建SELECT
查詢,但我找不到任何如何使用它來構建 UPDATE 查詢的示例。 我有一個對象,其中的屬性對應於表字段,我想更新所有這些屬性。
認為:
child: sql.define({
name: 'children',
columns: ['id', 'name', 'surname', 'group']
})
和:
var data = {/*new child data*/};
var query = child.update(data).where(child.id.equals(data.id)).toQuery().text;
如何在不知道data
屬性的值和計數的情況下將其與mssql
一起使用?
現在我有這個:
connection.query(query, [data.id, data.name, data.surname, data.group], function(err, result) {
res.redirect('/index');
});
這可以通過使用 lodash 的values
來實現:
_.values(data);
它返回對象屬性數組,但它不保證正確的順序,這是交易破壞者。
我該如何解決這個問題?
這將根據表列的順序返回一個值數組:
child.columns.map(function(col){return data[col.name]})
可以使用 lodash 以更短的形式壓縮上述內容。
幾天后我發現 node-sql 的查詢對象除了 .text 屬性之外還有 .values 屬性,所以上面的更新可以寫成
var data = {/*new child data*/};
var query = child.update(data).where(child.id.equals(data.id)).toQuery();
connection.query(query.text, query.values, function(err, result) {
res.redirect('/index');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.