Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa, salve salve, galera. Seguinte estou desenvolvendo um pequeno framework para um jogo, já lancei algumas versões e tudo, mas me deparei com um problema que nunca havia me deparado e não consigo sair deste.
Eu quero facilitar a vida do usuário do framework utilizando o bind_param do mysqli só que sei qual será a query que receberei, veja o meu código:
public function stmt($query, $type){
$this->query = $query;
$this->conectar();
$stmt = $this->db->stmt_init();
$stmt->prepare($this->query);
$type = explode(",", $type);
$number = substr_count($this->query, '?');
for($j=0;$j<$number; $j++) {
$ty .= $type[$j];
}
for($i=2;$i<func_num_args();$i++) {
$opt[$i] = func_get_arg($i);
}
$opt = implode(",", $opt);
echo $ty."<br>";
echo $opt."<br>";
$stmt->bind_param($ty, $opt);
$stmt->execute();
$this->resultado = $stmt->fetch();
$stmt->close();
if($this->resultado) {
$this->disconectar();
return $this->resultado;
} else {
echo "Ocorreu um erro na execução da query: ".$this->query." .<br />".mysqli_error()."<br />";
$this->disconectar();
return false;
}
}
Ok, mas não consigo dividir o as strings que chegarão com , para poder compor o campo ? ? ...
Exemplo:
$user = "Hildds";
$query = "INSERT INTO `Testes`.`login` (`user`,`senha`)VALUES (?, ?)";
$cfw->stmt($query, "ss", $user, "123456")
Ele retorna:
>
ss
Hildds,123456
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables in C:\Program Files\VertrigoServ\www\Core\Core.php on line 147
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\Program Files\VertrigoServ\www\Core\Core.php on line 156
Ocorreu um erro na execução da query: INSERT INTO Testes.login (user,senha)VALUES (?, ?) .
Quero poder dividi-los entre virgulas dentro do bind_param, alguém sabe como?
ps: se eu eu usar um loop irá fazer várias vezes minha query, logo não sei como fugir disso.
Carregando comentários...