$stmt->;错误不';t显示,但查询不起任何作用


$stmt->error doesn't show, but query does nothing

另一个问题。。。

我想更新我数据库中的一些内容,这次是我使用的滑块的名称,所以我这样做:

public function changeSlider($name) {
$errorsslide = array();
$stmt = $this->mysqli->prepare("UPDATE cms_functions  SET value = ? WHERE title='Slider' ");
if ( false===$stmt ) {
    die('prepare() failed: ' . htmlspecialchars($mysqli->error));
}
$stmt->bind_param('s', $name);
$stmt->execute();
if ( false===$stmt ) {
     die('execute() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->error();
$stmt->close();
$errorsslide[] = "<div class='alert alert-success'><button type='button' class='close' data-dismiss='alert'>x</button><strong>Success!</strong> Slider Changed successfully!</div>";
return $errorsslide;
}

当我运行代码时,它不会抛出错误,但它也不会更新我的数据库。。。

有答案吗?

Lisa

如果execute方法由于任何原因失败,则表明您当前没有正确捕获它。您需要比较该方法的返回值,看看它是否为false:

$result = $stmt->execute();
if ( false===$result ) {
     die('execute() failed: ' . htmlspecialchars($stmt->error));
}

我不确定下面的$stmt->error();行是否也有必要。

您在哪里声明$mysqli实例?如果它在函数中,并且你已经隐藏了它,那也没关系。但是,如果它是类的属性,那么您需要在包含它的所有地方都这样引用它:

$this->$mysqli