MySQL变量(使用声明)

时间:2014-01-17 18:29:23

标签: php mysql database linux

我设置了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来使用变量值?

1 个答案:

答案 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");

等查询来在应用程序代码中选择数据库
相关问题