MySQL 表名预处理

下列 sql 语句,执行预处理:

let sql = `SELECT * FROM ? LIMIT 1`;
let res = db.execute(sql,['tb_log']);


会出错,原因是预处理后的语句会变成:

SELECT * FROM 'tb_log' LIMIT 1


如果是存储过程,可以让表名等于一个变量:

create PROCEDURE test(tableName varchar(20)) 
BEGIN
 set @tableName = CONCAT(tableName); 
 set @sqlStr = CONCAT('show create table ', @tableName);
 prepare stmt from @sqlStr;
 execute stmt ;
 deallocate prepare stmt;
END;
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
MySQL
MySQL 批量插入数据时如何解决重复问题
2022-09-17
Node.js,后端
什么是 RESTful API 的幂等性
2022-10-09
Jone
在什么样的花园里面,挖呀挖呀挖
种什么样的种子,开什么样的花
随机推荐
WordPress 常用函数 / sanitize_user
TypeScript 和 Koa 实践
Nginx 通过日志统计访问数据
使用 svg 作为背景图片
Debian11 安装笔记2:编译安装PHP
WordPress 用户信息
JavaScript 和 CSS 检测横屏适配
Node.js MySQL 连接池和事务
WordPress 文章排序
curl 的用法指南

微信联系我

夜间模式切换
回到顶部