[英]mysqli_stmt::bind_param()Number of elements in type definition string doesn't match number
I have a problem with using mysqli_stmt::bind_param()
.我在使用mysqli_stmt::bind_param()
遇到问题。
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables...警告:mysqli_stmt::bind_param() [mysqli-stmt.bind-param]:类型定义字符串中的元素数与绑定变量数不匹配...
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;
}
Resolved解决
string types ("sss...");字符串类型(“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; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.