如何获得价值?结果是:Array([] => 2018)

时间:2018-11-23 14:37:36

标签: php

我正在使用PHP的SQL SERVER。

$sql="SELECT YEAR(getdate())";
$stmt = sqlsrv_query( $conn, $sql );
//result
$anio=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
echo print_r($anio);

this is the result:

Array ( [] => 2018 )

如何获取值“ 2018”?

3 个答案:

答案 0 :(得分:0)

您可以尝试将别名添加到所选列,并使用别名命名引用结果

    $sql="SELECT YEAR(getdate()) my_year";
    $stmt = sqlsrv_query( $conn, $sql );
    //result
    $anio=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
    echo print_r($anio);

这应该返回

    Array ( ['my_year'] => 2018 )

您可以将其称为

    echo $anio['my_year']; 

答案 1 :(得分:0)

您需要在SQL中使用“ AS”:

$sql="SELECT YEAR(getdate()) AS my_date";
$stmt = sqlsrv_query( $conn, $sql );
//result
$anio=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
echo $anio['my_date'];

答案 2 :(得分:0)

sqlsrv_fetch_array返回带有一对key=>value

的关联数组

因此,您的SQL语句未明确声明字段名,这就是为什么它返回与值关联的空键的原因。

要解决此问题,只需将SQL函数YEAR(getdate())与字段名称相关联即可。

$sql="SELECT YEAR(getdate()) AS myDate";
$stmt = sqlsrv_query( $conn, $sql );
$anio=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
echo $anio['myDate'];

我还建议您看看php如何处理数组(请参见php arrays

最好的Regad,pb