mysqli_stmt::bind_param()Number of elements in typ

2019-07-28 23:43发布

问题:

i have a problem with using mysqli_stmt::bind_param(). Can someone help me? Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables...

I am beginner in php. Thanks

 public function init($cards,$table,$seats)
 {
$operation = $this->operation($table, $seats);
return $this->insertCards($cards,$operation,count($cards));

  }     
public function operation($table, $seats)
{
  $operation = "insert into ".$table."(";
  $values = "(";
  for($i = 0; $i<count($seats);$i++)
  {
    $operation .= " cardsSeat".$seats[$i].",";
    $values .= "?,";
  }
  $values .= "?,?,?)";
  $operation .= " flop, turn, river) values ".$values;

  return $operation;        

}


    public function insertCards($cards, $operation, $x)
    {

        $insertCards = $this->spojenie->prepare($operation);
        $refArray = array();
        foreach($cards as $key => $value) $refArray[$key] = &$cards[$key];
        call_user_func_array(array($insertCards, 'bind_param'), $refArray);



        $insertCards->execute();
        return true;

    }

回答1:

Resolved

  • string types ("sss...");

public function insertCards($cards, $operation, $x) {

        $types = "";
        foreach($cards as $value)
            $types .= "s";
        $cards = array_merge(array($types),$cards);
        $insertCards = $this->spojenie->prepare($operation);
        $refArray = array();
        foreach($cards as $key => $value) $refArray[$key] = &$cards[$key];
        call_user_func_array(array($insertCards, 'bind_param'), $refArray);



        $insertCards->execute();
        return true;
    }


标签: php mysqli