mysqli_stmt::bind_param()Number of elements in type definition string doesn't match number

不打扰是莪最后的温柔 提交于 2019-12-25 00:10:01

问题


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;
    }


来源:https://stackoverflow.com/questions/5527202/mysqli-stmtbind-paramnumber-of-elements-in-type-definition-string-doesnt-ma

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!