我设置了MySQL变量:
SET @test = 'my_db';
select @test;
然后
use @test
ERROR 1049 (42000): Unknown database '@test'
OR
mysql> SET @test = 'my_db';
Query OK, 0 rows affected (0.00 sec)
mysql> select @test;
+-------+
| @test |
+-------+
| my_db |
+-------+
1 row in set (0.00 sec)
mysql> use @test
ERROR 1049 (42000): Unknown database '@test'
如何在MySQL中使用USE STATEMENT来使用变量值?
答案 0 :(得分:2)
变量不能在MySQL中用作标识符。您正在寻找MySQL不支持的宏扩展。
用户变量旨在提供数据值。它们不能直接在SQL语句中用作标识符或标识符的一部分,例如在需要表或数据库名称的上下文中,或者作为SELECT
等保留字。
来自http://dev.mysql.com/doc/refman/5.6/en/user-variables.html
可以通过使用预准备语句来解决某些语句,例如SELECT
,但是你不能准备USE
语句,所以它不是一个选项在这种情况下你。
您必须使用mysqli_select_db($test)
或执行mysqli_query("USE $test");