私は別のテーブルに値を挿入することができるように変数に私のmysqlクエリからの検索値を格納したいと思います。以下は mysqlの値を変数に格納する方法は?
は console.log(rows[i].maxId);
私は希望値
connectionSelectPackageId.connect();
let sqlSelectPackageId = "SELECT MAX(packageId) as maxId FROM recipients";
connectionSelectPackageId.query(sqlSelectPackageId, function(err, rows){
if(err) {
throw err;
} else {
for(var i=0; i< rows.length; i++) {
console.log(rows[i].maxId);
};
};
});
connectionSelectPackageId.end();
私はそれを慰めるとき、それは正しい番号を出力しますので、私は、私が正しく値を取得しています知っているを取得するためのクエリです格納された値が接続の最後を渡す(connectionSelectPackageId.end();
)
ありがとうございます。
connectionInsert.connect();
// Insert into the recipients the hashtag and information needed to opon the lock
function getDateTime() {
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth()+1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
if(month.toString().length == 1) {
var month = '0'+month;
}
if(day.toString().length == 1) {
var day = '0'+day;
}
if(hour.toString().length == 1) {
var hour = '0'+hour;
}
if(minute.toString().length == 1) {
var minute = '0'+minute;
}
if(second.toString().length == 1) {
var second = '0'+second;
}
var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;
return dateTime;
}
var dateTime = getDateTime();
// Add email later on
let sqlInsert = 'INSERT INTO recipients (date, ..., ..., ..., ..., ..., ..., data) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
connectionInsert.query(sqlInsert, [dateTime, ..., ..., ...,...,..., ..., data], function(err, rows, fields) {
});
connectionInsert.end();
データ値がプロミスまたはコールバック関数を使用して、第1のクエリまたはrows[i].maxId
あなたのニーズ(グローバルスコープなど)に応じてスコープが十分に広い変数に変数を挿入するだけではいかがですか。ちょうど 'var data = rows [i] .maxId' – RLaaa
私はしようとしましたが、その変数はクエリの範囲内でのみ動作するようです。 – John
私はコンソールログをこのvar data = rows [i] .maxIdに置き換えますが、コンソールのログデータをクエリのスコープ外に置くと、この変数は定義されていません。 – John