私はNodejsとexpressjsフレームワークを使用しており、今取得しようとしています 「最後に挿入された ID」ですが、コンソールでは「未定義」と表示されます。最後に挿入された ID を取得するにはどうすればよいですか?これが私の現在のコードです
static async addServiceDetail(salonId,serviceId,genderTypeId,price,serviceName) { const sql = `hc_servicesdetail WHERE から id を選択します。 shopId='${shopId}' AND serviceId='${serviceId}' ANDenderTypeId='genderTypeId'`; const [行、フィールド] = await pool.execute(sql); if(行<1) { const sql2 = `INSERT INTO hc_servicesdetail (shopId,serviceId,genderTypeId,price,serviceName) VALUES ("${shopId}", "${serviceId}", "${genderTypeId}", "${price}","$ {サービス名}")`; const datass = await pool.execute(sql2); console.log('最後に挿入された ID は ' datass.insertId です); } それ以外 { console.log('すでに存在します'); } } } module.exports = ユーザー;
P粉7318612412024-03-20 15:00:01
result.insertId
プロパティを使用します。このプロパティは、INSERT
クエリの実行時に実行されるコールバック関数で使用できます。
static async addServiceDetail(shopId,serviceId,genderTypeId,price,serviceName) { const sql = `hc_servicesdetail WHERE から id を選択します shopId='\${shopId}' AND serviceId='\${serviceId}' ANDenderTypeId='\${genderTypeId}'`; const [行、フィールド] = await pool.execute(sql); if (行 < 1) { const sql2 = `INSERT INTO hc_servicesdetail (shopId, serviceId, genderTypeId, price, serviceName) VALUES ("${shopId}", "${serviceId}", "${genderTypeId}", "${price}","${serviceName}")`; const [datass, _] = await pool.execute(sql2); console.log('last inserted id is ' + datass.insertId); } else { console.log('already exist'); } }
最初の SQL クエリで genderTypeId='genderTypeId'
を ngenderTypeId='\${genderTypeId}'
に変更したことに注意してください。これにより構文エラーが修正されるはずです。