所以我有一个非常简单的功能,它可以通过一些其他凭据来运行用户的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。有谁知道为什么会这样?
答案 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