Я пытаюсь сделать функцию, которая будет проверять обновление и вставлять некоторые данные, но у меня проблема на первом этапе, где $ stmt-> bind_param говорит, что не передает параметры по ссылке или что-то в этом роде.
Я искал через интернет, но ничего не было вокруг, поэтому я не знаю, что с ним делать.
Я добавил код функции:
public function killTarget($killerid,$victimiid,$victimcode) { if ($this->checkUsercode($victimcode,$victimiid)) { $stmt = $this->_db->prepare("UPDATE users SET status =? WHERE user_id =?"); $stmt->bind_param("ii",0,$victimiid); if ($stmt->execute()) { $stmt->store_result(); $stmt->fetch(); $stmt = $this->_db->prepare("SELECT victim_id FROM target WHERE killer_id = ?"); $stmt->bind_param("i",$victimiid); if ($stmt->execute()) { $stmt->store_result(); $stmt->bind_result($targetid); $stmt->fetch(); $stmt = $this->_db->prepare("INSERT INTO target (killer_id, victim_id) VALUES (?,?)"); $stmt->bind_param("ii",$killerid,$targetid); if ($stmt->execute()) { $stmt->store_result(); $stmt->fetch(); $stmt->close(); } } } else { Main::setMessage("targets.php",$this->_db->error,"alert-error"); } } }
Ну, любое предложение приветствуется.
спасибо
Вы не можете сделать это в mysqli:
$stmt->bind_param("ii",0,$victimiid);
Значение 0
должно быть переменной.
Попробуй это:
$zero = 0; $stmt->bind_param("ii",$zero,$victimiid);
Сделайте 0 переменной или включите ее непосредственно в свой запрос.
$zero = 0; $stmt->bind_param("ii", $zero, $victimiid);
Осторожно! mysqli_stmt::bind_param
принимает ссылку на переменную, а не постоянное значение. Поэтому вам нужно создать переменную для хранения этого 0
а затем вместо этого ссылаться на эту переменную.
$i = 0; $stmt->bind_param("ii", $i, $victimiid);