PHP方法不返回

PHP方法不返回,php,Php,你好, 我正在尝试处理这个类,在这里我应该保存函数addLikes()完成的操作。但是,save()方法不会返回bool。它不会返回任何东西。我在控制器中尝试了var_转储,但没有效果 Controller.php函数 public function updateLike() { $id = $_POST['id']; $article = new Article($id); if($article->exists){ $article->a

你好,

我正在尝试处理这个类,在这里我应该保存函数
addLikes()
完成的操作。但是,
save()
方法不会返回bool。它不会返回任何东西。我在控制器中尝试了var_转储,但没有效果

Controller.php函数

public function updateLike()
{
    $id = $_POST['id'];
    $article = new Article($id);

    if($article->exists){
        $article->addLikes();
        $article->save();
    }

}
Model.php addLikes()

Model.php save()

我从构造函数中获取ID,并获取所有其他值。问题在于储蓄。怎么了?它为什么不回来呢?它是布尔?为什么它不能正确地保存


我正在研究这个问题一段时间。修复了获取问题,但现在它根本不返回。

我不知道类中的变量内容是什么。它可能有一些错误,但SQL查询中有一个明显的错误。您最后的查询可能如下:

UPDATE `articles` SET Col1 = 4, Col2 = 5, WHERE `id` = 5
public function save()
{
    $prepareQuery = 'UPDATE `articles` SET ';
    foreach( $this->data as $key => $value )
        $prepareQuery .= $key . ' = ' . $value . ','; //I deleted space after comma
    $prepareQuery = substr($prepareQuery, 0, -1);  //this deletes the last comma
    $prepareQuery .= ' WHERE `id` = :id'; //I inserted a space at beginning
    $stmt = $this->DB()->conn()->prepare($prepareQuery);
    $stmt->execute([':id' => $this->id]);
    return !!$stmt->rowCount();
}
正如您看到的,最后一个元素有一个不需要的逗号,因此必须删除最后一个逗号才能更正它。您可以按如下方式编辑
model.php

UPDATE `articles` SET Col1 = 4, Col2 = 5, WHERE `id` = 5
public function save()
{
    $prepareQuery = 'UPDATE `articles` SET ';
    foreach( $this->data as $key => $value )
        $prepareQuery .= $key . ' = ' . $value . ','; //I deleted space after comma
    $prepareQuery = substr($prepareQuery, 0, -1);  //this deletes the last comma
    $prepareQuery .= ' WHERE `id` = :id'; //I inserted a space at beginning
    $stmt = $this->DB()->conn()->prepare($prepareQuery);
    $stmt->execute([':id' => $this->id]);
    return !!$stmt->rowCount();
}

那个双感叹号是关于什么的<代码>在你的
save()
方法中?@KIKOSoftware——它是
boolean
@KIKO软件的简写,似乎只是做
(bool)$stmt->rowCount()
好的,谢谢,我明白了。;-)我从来不知道。。。是的,我也更喜欢
(bool)
。如果你的代码显示你没有做任何事情来获取
save()
返回的内容,你为什么要尖叫什么也不返回呢。那么问题是什么?在查询中,您不会转义您的值!所有的值都是整数吗?如果不先解决这个问题,这是我没有注意到的。谢谢这确实是我需要的解决办法。