PHP MYSQL返回字符串字段作为数字


PHP MYSQL returning string field as numeric

我有一个MYSQL数据库,有一个表的列(field1)类型的TINYTEXT。该列包含诸如"010101"answers"01010"等值,这些值实际上是文件名。

当我使用PHP查询这个表时,它似乎决定这个字段是数字,因此它剥离了前导零。当我尝试使用这个值作为文件名时,当然它不起作用。

我像这样提取数据:

$sSQL      = "SELECT * FROM images;";
$rsImageList = RunQuery($sSQL);
$iLoop = 0;
while (($iLoop <= 80) && ($aRow = mysql_fetch_array($rsImageList))) {
  extract($aRow);
  echo $field1;
  $iLoop++;
}

如何将变量类型转换为字符串类型?


认错!我设法在我的表中获得重复的数据,一些条目已经丢失了前导零(感谢我用来导入数据的Excel)和一些没有。我看到的是正确的数据,但提取的却是错误的数据。这个故事的寓意是——只测试几行数据,而不是60行!

对不起,浪费了大家的时间。

可以强制转换为字符串:

$var = "" . $aRow["column"];

您可以使用CAST()函数将其更改为字符串

$sSQL = "SELECT CAST(field1 AS CHAR) FROM images;";

给它一个尝试,我不认为这是MySQL的错误,因为你已经定义为TINYTEXT可能是因为extract()方法。