下列 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;
声明:本站所有文章和图片,如无特殊说明,均为原创发布,转载请注明出处。