我使用以下语句作为示例:
<?php
$link = mysql_connect( '127.0.0.1', 'user', 'pass' );
mysql_query('SET @a = "test";', $link);
$r = mysql_query('SELECT @a;', $link);
echo mysql_field_type($r,0);
?>当我在MySQL 5.0上执行这个命令时,输出是"string“。当我在MySQL 5.1上执行这个命令时,输出是"blob“。
这是一个bug吗?或者,是否有更改此行为的设置?我的外部应用程序需要一个字符串,但现在使用这个新的结果类型失败了。希望有人能帮我解决这个问题。
发布于 2011-10-21 19:21:59
不是关于原因的真正答案,而是一种变通方法
$r = mysql_query('SELECT CAST(@a AS VARCHAR(255)) as outcome;', $link);根据5.0文档:http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
如果在结果集中选择了用户变量的值,则将其作为字符串返回给客户端。
文档5.1、5.5和5.6的内容完全相同。
https://stackoverflow.com/questions/7848499
复制相似问题