PHP函数总是返回1

时间:2015-03-12 22:21:20

标签: php function

我有一个模型函数来检查我的数据库中是否存在pseudo_exist:

<?php
function pseudo_check($DB, $pseudo) {

    $req = $DB->prepare("SELECT COUNT(pseudo) FROM members where pseudo = ?");

    $req -> execute(array($pseudo));
    $nbre_pseudo = $req->fetch();

    settype($nbre_pseudo, "integer");

    $path = "LOG.txt";
    $ressource = fopen($path, "a");
    fwrite($ressource, "$nbre_pseudo");
    fclose($ressource);

    return ($nbre_pseudo);
    $req->closeCursor();
}
?>

然后,我用控制器文件调用我的函数:

<?php
require_once('models/dbconnect.php');
require_once('models/inscription_functions.php');

pseudo_check($DB, $_POST['pseudo']);

if($nbre_pseudo > 0)
{
    header('location: index.php?page=inscription&error=pseudo_exist');
}
?>
  • 在我的函数中,'$ nbre_pseudo'变量每次返回'1',我不明白为什么..

  • 我使用'settype'来避免返回'Array',但也许还有其他解决方案?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您正在使用settype来防止数组返回...数组上的设置类型与从数组中获取值不同。

$req = $DB->prepare("SELECT COUNT(pseudo) AS count FROM members where pseudo = ?");

$req -> execute(array($pseudo));
$nbre_pseudo = $req->fetch();

$count = $nbre_pseudo['count']

答案 1 :(得分:1)

使用settype($nbre_pseudo, "integer")将数组转换为整数。如果数组为空,则结果为0;如果数组不为空,则结果为1。