【问题标题】:Problem with insert into database command using connection class [duplicate]使用连接类插入数据库命令的问题[重复]
【发布时间】:2019-11-27 23:29:08
【问题描述】:

insert into 没用。

我试过mysqli连接,还是不行。

请检查代码并告诉我有什么问题。

<?php
require_once "DBController.php";

class Rate extends DBController
{

function getAllPost()
{
    $query = "SELECT * FROM storedproducts";

    $postResult = $this->getDBResult($query);
    return $postResult;
}

    public function AddRating($rating, $id) {

    $query = $this->conn->prepare("insert into stored_rating ( rating , stored_id) VALUES (?,?)");
   $query->execute([$rating, $id,]);

}


public function getRateAverage($id) {
$query = $this->conn->prepare("SELECT AVG(rating) FROM `stored_rating` WHERE stored_id=?");
$params = array(
        array(
            "param_type" => "i",
            "param_value" => $id
        )
    );    
    $this->bindParams($query,$params);
    $query->->execute();
    $rsult->fetchColumn();
     return $rsult;   

}
// $query = "insert into stored_rating ( rating , stored_id) VALUES (?,?)";
//    $statement->execute([$rating, $id,]);

function updateRatingCount($rating, $id)
{
    $query = "UPDATE storedproducts SET  rating = ? WHERE ID_Stored= ?";

    $params = array(
        array(
            "param_type" => "i",
            "param_value" => $rating
        ),
        array(
            "param_type" => "i",
            "param_value" => $id
        )
    );
    this->updateDB(updateDB,$params);

    }
}

【问题讨论】:

  • 您使用的是mysqli 还是PDO?因为 execute() 带有数组参数,仅适用于 PDO

标签: php class mysqli


【解决方案1】:

mysqli_statement-&gt;execute() 方法不适用于数组参数,它仅适用于 PDO。你必须先绑定你的参数,然后执行。

$query = $this->conn->prepare("insert into stored_rating ( rating , stored_id) VALUES (?,?)");
if ($query) { // Remember to check for return value, sometime prepare statment return false.
    $query->bind_param("ss", $rating, $id);
    $query->execute();
}

【讨论】:

  • require_once("Rate.php"); $rate = new Rate(); $rate->AddRating($_POST["rating"],$_POST["id"]); $avg_rating=$rate->getRateAverage($_POST["id"]); $rate->updateRatingCount($avg_rating, $_POST["id"])} 仅在 updateRatingCount 函数请求时不起作用
猜你喜欢
  • 2019-10-10
  • 2014-10-18
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
相关资源
最近更新 更多