mysql - 带有多个变量的mysql准备语句
问题描述
使用一个变量不会给我一个错误。有两个变量它给了我一个语法错误。
set @a= '...';
set @b = '...';
PREPARE stm1 FROM
'SELECT *
FROM ?
WHERE username = ?';
EXECUTE stm1 USING @a, @b;
Error Code: 1064. You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '? WHERE username = ?' at line 2
其他问题没有帮助。
谢谢
解决方案
您不能使用参数作为表名。您必须使用连接来替换表的变量。
PREPARE stm1 FROM CONCAT(
'SELECT *
FROM `', @a, '`
WHERE username = ?');
EXECUTE stmt1 USING @b;
推荐阅读
- r - R中的三个逻辑运算符
- groovy - 如何在 groovy 中使用不包含检查进行标头验证
- mysql - MySQL 5.0 根据不同的列分配编号
- python - 在 spacy 中加载英文模块时出错
- python - 使用 Xpath / Scrapy 提取时删除空字段
- angular - 我正在尝试在 Angular 6 中使用 mocha 进行测试,但出现以下错误,可以使用 mocha 测试 Angular 6
- python - 如何在您的应用程序中使用 django 包?
- facebook - 什么是 fbevents_telemetry?
- php - 在 Magento 1.9 中创建自定义模块
- java - 循环输入时如何关闭扫描仪对象?