valor - PHP y MySQLi-No se puede pasar el parámetro 2 por referencia en
php call stored procedure mysql with parameters (3)
Haga 0 una variable o inclúyala directamente en su consulta.
$zero = 0;
$stmt->bind_param("ii", $zero, $victimiid);
Estoy tratando de hacer una función que verifique la actualización e inserte algunos datos, pero estoy teniendo un problema en el primer paso donde el $ stmt-> bind_param dice que no está pasando parámetros por referencia o algo así.
Busqué en internet pero no había nada, así que no sé qué hacer con él.
He adjuntado debajo del código de función:
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");
}
}
}
Bueno, cualquier sugerencia es apreciada.
Gracias
No puedes hacer esto en mysqli:
$stmt->bind_param("ii",0,$victimiid);
El 0
necesita ser una variable.
Prueba esto:
$zero = 0;
$stmt->bind_param("ii",$zero,$victimiid);
¡Cuidado! mysqli_stmt::bind_param
acepta una referencia a una variable, no a un valor constante. Por lo tanto, debe crear una variable para mantener ese 0
y luego hacer referencia a esa variable.
$i = 0;
$stmt->bind_param("ii", $i, $victimiid);