數據庫操作時的常見錯誤:未指定數據庫
如問題所示,程序在執行 sql 查詢時遇到:”er_bad_db_error: unknown database” 的錯誤。這是因為 sql 語句中未指定要操作的數據庫,導致數據庫無法找到對應的表。
在 mysql 中,要指定數據庫,需要在 sql 語句的開頭添加 use 數據庫名 語句。例如,
use my_db_01;
執行此語句后,所有后續的 sql 語句將針對數據庫 my_db_01 執行。
在代碼中,可以先使用 use 語句指定數據庫,然后執行 sql 查詢。例如,修改后的代碼如下:
exports.regUser = (req, res) => { // 1. 獲取用戶信息 const userinfo = req.body; // 2. 指定數據庫 db.query('USE my_db_01;'); // 3. 執行數據庫操作,查重用戶名 // 4. 定義 SQL 語句 const sql = 'SELECT * FROM getloonwh_users WHERE username=? AND usernumber=?'; // 5. 執行 db.query(sql, [userinfo.username, userinfo.usernumber], (err, results) => { if (err) return res.cc(err); if (results.length > 0) return res.send('已存在用戶名!重新輸入'); const sqlStr = 'INSERT INTO getloonwh_users SET ?'; db.query(sqlStr, { username: userinfo.username, usernumber: userinfo.usernumber }, (err, results) => { if (err) return res.cc(err); if (results.affectedRows !== 1) return res.cc('注冊失敗!'); res.send({ status: 0, msg: '注冊成功!' }); }); }); // res.send('注冊成功!') };
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END