下列 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;
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏