为什么我得到空结果?

时间:2016-07-14 16:05:13

标签: php mysql

所以我有一个非常简单的功能,它可以通过一些其他凭据来运行用户的MySQL数据库。我已经写了几个其他函数来运行类似的查询与预期的工作。但是目前每次我对我的数据库运行查询时都会得到null结果。我已经接受了查询本身并直接对它进行了运行(phpmyadmin)并且能够检索到所需的结果。

function getName( $user ){
    $con = mysqli_connect('localhost','*****','*****','*****');
    if(mysqli_connect_error()){
        echo 'Failed to Connect: '. mysqli_connect_error();
        die();
    }
    $stmt = $con->prepare('SELECT firstName,lastName FROM users WHERE user=? LIMIT 1');
    $stmt->bind_param('s',$user);
    $stmt->execute();
    $stmt -> bind_result($fname,$lname);


    $stmt->fetch();

    $lArr = str_split($lname);
    $canName = $fname . ' ' . $lArr[0].'.';
    return $canName;
}

为了以防万一,我尝试过无限制。 var_dump始终显示null。有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

您忘记->fetch()结果集中的任何结果,只是将它们绑定到变量是不够的

function getName( $user ){
    $con = mysqli_connect('localhost','*****','*****','*****');
    if(mysqli_connect_error()){
        echo 'Failed to Connect: '. mysqli_connect_error();
        die();
    }
    $stmt = $con->prepare('SELECT firstName,lastName FROM users WHERE user=? LIMIT 1');
    $stmt->bind_param('s',$user);
    $stmt->execute();
    $stmt -> bind_result($fname,$lname);

    // now fetch data into the bound variables
    $stmt->fetch();

    $lArr = str_split($lname);
    $canName = $fname . ' ' . $lArr[0].'.';
    return $canName;
}

答案 1 :(得分:-1)

您执行查询但未获取结果(正如RiggsFolly所说)。你大喊使用fetchall()的fetch()

http://php.net/manual/en/pdostatement.fetchall.php http://php.net/manual/en/pdostatement.fetch.php