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.");
}
}

相关推荐
GDAL28 分钟前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
数据库·sqlite·node.js
DCTANT1 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
程序员岳焱3 小时前
Java 与 MySQL 性能优化:MySQL全文检索查询优化实践
后端·mysql·性能优化
喜欢敲代码的程序员3 小时前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
AI、少年郎4 小时前
Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)
数据库·oracle
赤橙红的黄4 小时前
自定义线程池-实现任务0丢失的处理策略
数据库·spring
钢铁男儿4 小时前
C# 委托(调用带引用参数的委托)
java·mysql·c#
叁沐4 小时前
MySQL 02 日志系统:一条SQL更新语句是如何执行的?
mysql
DataGear4 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
weixin_438335404 小时前
分布式锁实现方式:基于Redis的分布式锁实现(Spring Boot + Redis)
数据库·redis·分布式