我有一个模型函数来检查我的数据库中是否存在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',但也许还有其他解决方案?
感谢。
答案 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。