如何从mysql var

时间:2016-03-11 14:49:44

标签: php mysql mysqli

我在我的mysql DDBB中定义了我的var,如下所示:

set @myVar = 1;

所以我想以这种方式从我的PHP代码中查阅这个var:

$sql="select @myVar";
$link = connectDB();//connects directly to the ddbb and returns connection object.
if(!$result=$link->query($sql)){
   throw new Exception(" Mysql error ".$link->errno);
}
if(mysqli_num_rows($result)==1){
   $row = $result->fetch_assoc();
}
echo ($row['@myVar']);

finally echo应该打印var值。但没有任何印刷品。这有什么问题?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

问题是显然你的代码刚刚连接到mysql数据库,然后尝试检索mysql user defined variable。根据链接文档:

  

用户定义的变量是特定于会话的。定义了用户变量   一个客户端无法被其他客户看到或使用。 (例外:A   有权访问性能模式user_variables_by_thread的用户   table可以查看所有会话的所有用户变量。)所有变量   当客户端退出时,将自动释放给定的客户端会话。

因此,在另一个会话(数据库连接)中定义的任何变量都不可用于您的代码。如果你需要在数据库调用之间传递数据,那么要么将它们保存在mysql表中,要么在从php代码中分配值并在那里保留值时检索这些值。

答案 1 :(得分:0)

这里展示了您遇到的问题

chris@dev:~$ mysql -e 'set @x=2; select @x'
+------+
| @x   |
+------+
|    2 |
+------+
chris@dev:~$ mysql -e 'select @x'
+------+
| @x   |
+------+
| NULL |
+------+

当建立新连接时,变量超出范围。