sql连接在一次调用后终止

fjaof16o  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(209)

我有一个自定义类,它将sql连接作为参数。我使用它来填充类,然后再次尝试使用它来修改屏幕上的结果。但是在第一次使用之后,我不能再使用它了。
连接.php:

$conn = new mysqli('localhost', 'root', '', 'loveConnections');
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

personalityprofile.php(前端)

if (!isset($_SESSION['interests'])) {
    $interests = new Interests($conn, $_SESSION['id']);
    $_SESSION['interests'] = $interests;
} else {
    $interests = $_SESSION['interests'];
}

兴趣对象.php

class Interests {

  // properties
  public $conn;
  public $id;
  public $interestsArray = [];

  public function __construct($conn, $memberId = null, $intArray = [
    'basketball' => false,
    'bowling' => false,
    'movies' => false,
  ]) {
    $this->conn = $conn;
    $this->id = $memberId;
    $this->interestsArray = $intArray;
    $this->popArraySql();
  }

  public function popArraySql() {
    $memInterests = [];
    $sql = "SELECT i.interest
              FROM memberInfo m
              Join MemberInterestLink mi on (mi.memberID_FK = m.memberID_PK)
              Join interests i on (mi.interestID_FK = i.interestID_PK)
              WHERE memberID_PK = $this->id";
    $result = $this->conn->query($sql);
``` `$this->conn` 在这里工作得很好

foreach ($result as $row) {
array_push($memInterests, $row['interest']);
}

foreach ($this->interestsArray as $key => $value) {
  for ($i=0; $i<sizeof($memInterests); $i++) {
    if ($memInterests[$i] === $key) {
      $this->interestsArray[$key] = true;
    }
  }
}

}

public function insertUpdateQuery() {
var_dump($this->conn);
foreach ($this->interestsArray as $key => $val) {
echo $key . "";
$select = "SELECT interestID_PK from interests where interest = '" . $key . "'";
echo $select;
$result = $this->conn->query($select);

不过,当我稍后尝试使用它时,我得到了一个 `Warning: mysqli::query(): Couldn't fetch mysqli` . 另外,如果我想把它扔掉 `Warning: var_dump(): Property access is not allowed yet` ```
var_dump($result);
      if ($val === true) {
        $insert = "INSERT INTO MemberInterestLink (memberID_FK, interestID_FK) VALUES ($this->id, $interestKey)";
        $this->conn->query($insert);
      } else {
        $delete = "DELETE FROM MemberInterestLink WHERE interestID_FK = $interestKey";
        $this->conn->query($delete);
      }
    }
  }
}

我从不关闭连接,这就是大多数相关答案所暗示的原因。就像我的$conn变量在第一次使用后就停止工作了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题