Node.js 处理Mysql包含单引号字符字段

一、异步处理的方式

// 引入mysql模块
const mysql = require('mysql');

// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});

// 连接到数据库
connection.connect(err => {
if (err) throw err;
console.log("Connected to the database!");
});

// 插入含有单引号的字段
const text = "It's a beautiful day";
const insertQuery = 'INSERT INTO example (text_column) VALUES (?)';

connection.query(insertQuery, text, (err, result) => {
if (err) throw err;
console.log("Record inserted:", result);
});

// 查询含有单引号的字段
const selectQuery = 'SELECT * FROM example WHERE text_column = ?';

connection.query(selectQuery, text, (err, results) => {
if (err) throw err;
console.log("Query results:", results);
});

// 关闭数据库连接
connection.end(err => {
if (err) throw err;
console.log("Disconnected from the database.");
});

二、同步处理的方式

// 引入mysql和util模块
const mysql = require('mysql');
const util = require('util');

// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});

// 将 connection.connect 和 connection.query 转换为 promise 风格
const connectAsync = util.promisify(connection.connect).bind(connection);
const queryAsync = util.promisify(connection.query).bind(connection);

// 使用 async/await 来以同步的方式处理数据库操作
async function runDatabaseOperations() {
try {
// 连接到数据库
await connectAsync();
console.log("Connected to the database!");

// 插入含有单引号的字段
const text = "It's a beautiful day";
const insertQuery = 'INSERT INTO example (text_column) VALUES (?)';
const insertResult = await queryAsync(insertQuery, text);
console.log("Record inserted:", insertResult);

// 查询含有单引号的字段
const selectQuery = 'SELECT * FROM example WHERE text_column = ?';
const selectResults = await queryAsync(selectQuery, text);
console.log("Query results:", selectResults);

} catch (err) {
// 如果发生错误,打印错误信息
console.error("An error occurred:", err);
} finally {
// 无论成功还是发生错误,都断开数据库连接
connection.end();
console.log("Disconnected from the database.");
}
}

相关推荐
米丘12 小时前
vite8 vite preview 命令做了什么?
node.js·vite
blanks20201 天前
生成 公钥私钥 笔记
node.js
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横1 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二1 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
小猿姐2 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
糖拌西瓜皮2 天前
Java开发者视角:深入理解Node.js异步编程模型
java·后端·node.js