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;
声明:本站所有文章和图片,如无特殊说明,均为原创发布,转载请注明出处。
随机推荐
CSS 基本语法
WordPress WP_Query() 文章置顶的方法
Node.js 简介
WordPress 用户元信息 get_user_meta() 和 update_user_meta()
Node.js 实现 RBAC 权限模型
WordPress 修改 RESTful API 的请求和响应
JavaScript 使用 html2canvas 生成图片
WordPress 后台添加菜单