2016-09-21 24 views
0

私はこれを検索しましたが、ほとんどの結果はNode.jsの一括挿入に私がatmを必要としません。私の理解のために、バルクインスタントとは、必要のない複数の行を挿入することを意味します。node.jsのクエリにパラメータとして配列をインスタンス化するmySQL

私は、クエリのパラメータとしてオブジェクトの配列を使用しようとしている:

function saveDomicilio(id_establecimiento, token, order, total){ 
var order = [{"id":1,"quantity":2},{"id":"3","quantity":"4"}]; 

console.log("Order" + order); // logs correctly my order 

var new_Domicilio = { 
    id_establecimiento: id_establecimiento, 
    id_usuario: token, 
    orden: order, 
    total : total 
}; 

pool.getConnection(function(err, connection) { 

if(err) { 
    console.log(err); 
    return; 
} 

// make the query 

connection.query("INSERT INTO domicilio SET ?", [new_Domicilio], function(err, results) { 
    if(err) { 
    console.log(err); 
    return; 
    } 

    console.log("New domicilio created"); 
    return; 

}); // query 
}); // pool 
}; 

は、私はエラーを取得し、配列を使用してに問題が発生しました:

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''{\"id\":1,\"cantidad\":2}', total = 300

どうすればいい?

+0

を試してみてください[]

でラップしていない1 rowに保存したい場合は? – Shaharyar

+0

いいえ、私はそうは思わない? 1行にnew_Domicilioを挿入したいだけです – Alan

+0

あなたの配列には2つのオブジェクトがあり、2行を意味します。どのようにして1行に保存できますか?あなたのテーブル構造は何ですか? – Shaharyar

答えて

0

あなたは、あなたが `2 rows`、`複数rows`を呼び出さないでください。この

connection.query("INSERT INTO `domicilio` SET ?", new_Domicilio, function(err, results) { 
    if(err) { 
    console.log(err); 
    return; 
    } 
+0

、同じエラー – Alan

+0

をint型、あなたは 'domicilio'を包み込み、もう一度やり直せますか? – abdulbarik

+0

私は何が間違っているのか分かりません、私のログには 'Orden {" id ":3、" cantidad ":5}、{" id ":1、" cantidad ":2}'ラッピングしても動作しませんdomicilioと[]を取り除く – Alan

関連する問題