Php 对象方法不返回结果

Php 对象方法不返回结果,php,html,css,Php,Html,Css,我无法恢复请求的值,我必须从数据库中恢复字符上的数据对象(由于其名称),然后显示此信息 所以,当我想使用我的角色时,只需输入他的名字,我们就会看到: //如果需要,请使用字符 elseif(isset($_POST['use'])和&isset($_POST['name'])) { 如果($manager->exist($\u POST['name'])) { $perso=$manager->getPerso($_POST['name']); } 其他的 { $message='Ce pers

我无法恢复请求的值,我必须从数据库中恢复字符上的数据对象(由于其名称),然后显示此信息

所以,当我想使用我的角色时,只需输入他的名字,我们就会看到:

//如果需要,请使用字符
elseif(isset($_POST['use'])和&isset($_POST['name']))
{
如果($manager->exist($\u POST['name']))
{
$perso=$manager->getPerso($_POST['name']);
}
其他的
{
$message='Ce personnage n'existe pas!';
}
}
函数getPerso是cella,它将从数据库返回数据对象,此方法位于PersonagesManager类中:

公共函数getPerso($info) { $column=is_int($info)?'id':'namePerso'; $q=$this->\u db->prepare('SELECT id,namePerso,personnages中的损坏,'$column'=:'.$column'); $q->bindValue(“:”.$column,$info); $q->execute(); 返回新的PersonManager($q->fetch(PDO::fetch_ASSOC)); } 就我的班级角色而言,没有什么非常复杂的事情,因为这个方法,我得到了他的名字:

public函数名()
{返回$this->_name;}
然后,当我发送表单时,我会传递一些检查,然后当使用getPerso方法恢复角色并定义$perso时,我会显示关于该角色信息的页面,以了解:创建的数量、他的姓名、这些损坏,以及最终要命中的除他以外的角色列表:

if(设置($perso))
{
印刷(每人);
?>

人工编码站信息: 名称:
德盖茨:

奎·弗雷珀?
我正在寻找解决方案:

  • 我的请求需要返回带有键的数组:“id”,“name”,“damage”和“not'namePerso”
因此,我将namePerso字段放在name变量中:

$q = $this->_db->prepare('SELECT id, namePerso AS name, damage FROM personnages WHERE ' . $column . '=:' . $column);

通过
其他信息
你的意思是
损坏
id
消失了吗?如果你在返回之前输出
$donnees
,你有数据吗?也许问题是你只返回
姓名
索引?是的,其他信息如损坏和id,我已经用imag更改了我的信息以获得更高的精度e!你是说使用
返回新的Personnage(['name'=>$donnees['namePerso']]);
为您提供名称并
返回新的Personnage($q->fetch(PDO::fetch_ASSOC))
为您提供其他数据吗?是的!但是
返回新的Personnage($q->fetch(PDO::fetch_ASSOC))
不要告诉我名字!只有damage和idYou要调用
fetch
两次,只能调用一次。虽然这会给出所有列,但只需跳过第一行即可。
public function getPerso($info)
    {
        $column = is_int($info) ? 'id' : 'namePerso';
        $q = $this->_db->prepare('SELECT id, namePerso, damage FROM personnages WHERE ' . $column . '=:' . $column);
        $q -> bindValue(':' . $column, $info);

        $q -> execute();

        $donnees = $q -> fetch(PDO::FETCH_ASSOC);

        return new Personnage(['name' => $donnees['namePerso']]);

        //return new Personnage($q->fetch(PDO::FETCH_ASSOC));
    }
public function getPerso($info)
    {
        $column = is_int($info) ? 'id' : 'namePerso';
        $q = $this->_db->prepare('SELECT id, namePerso, damage FROM personnages WHERE ' . $column . '=:' . $column);
        $q -> bindValue(':' . $column, $info);

        $q -> execute();

        return new Personnage($q->fetch(PDO::FETCH_ASSOC));
    }
$q = $this->_db->prepare('SELECT id, namePerso AS name, damage FROM personnages WHERE ' . $column . '=:' . $column);