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()
返回的内容,你为什么要尖叫什么也不返回呢。那么问题是什么?在查询中,您不会转义您的值!所有的值都是整数吗?如果不先解决这个问题,这是我没有注意到的。谢谢这确实是我需要的解决办法。