bind_param com campo de objeto select
Tive que fazer uma manutenção no sistema, acrescentar um campo e na hora de realizar um update não da dando.
Tentei várias variações, e pesquisei na web e não achei solução.
Uma página só tinha campos tipo texto e adicionar um select (combo)
Indique qual segmento se refere esta midia
<select name="fld_segmento">
<option selected value="">selecione</option>
<?php
$row = $tratar_midia->segmentos();
foreach ($row as $key => $value) {
echo '<option value="'.$value['idSeg'].'">'.$value['Seg'].'</option>';
}
echo '</select>';
?>e estre trecho envia os dados pra uma função
if (isset($_POST['submit'])){
$var = $tratar_midia->processa_dados_form(array_merge($_POST));
Na função, é adicionada uma data
extract($vars); // extrai campos do formulario
$_data_publicado = date("Y") . '-' . date("m") . '-' . date("d") . ' ' . date("H") . ':' . date("i") . ':' . date("s");
(!empty($fld_idm)) ? $this->editar_midia($vars, $_data_publicado) : "Nenhum arquivo de midia selecionado";e a outra função pega os dados do array e mais a data e grava
extract($vars);
$tabela = $this->seleciona_tabela_midia($fld_categoria); // seleciona tabela conforme categoria
if ($_edita = $mysqli->prepare("UPDATE `$tabela` SET `titulo_midia`=?,`texto_midia`=?,`fonte_midia`=?,`arquivo_link`=?,`arquivo_destacar_home`=?,`publicado_midia`=?, `segmento`=? WHERE `idm`=?") or $mysqli->errno)$_edita->bind_param('ssssisii', utf8_decode($fld_titulo), utf8_decode($fld_texto), utf8_decode($fld_fonte), $arquivo_link, $fld_arquivo_destacar_home, $_data_publicado, utf8_decode($fld_segmento), $fld_idm);O campo novo é o segmento e adicionei mais uma parametro no bind_param como inteiro i
Antes estava assim e funcionava
ou seja não tinha o campo segmento
if ($_edita = $mysqli->prepare("UPDATE `$tabela` SET `titulo_midia`=?,`texto_midia`=?,`fonte_midia`=?,`arquivo_link`=?,`arquivo_destacar_home`=?,`publicado_midia`=? WHERE `idm`=?") or $mysqli->errno)
$_edita->bind_param('ssssisi', utf8_decode($fld_titulo), utf8_decode($fld_texto), utf8_decode($fld_fonte), $arquivo_link, $fld_arquivo_destacar_home, $_data_publicado, $fld_idm);
O campo ta certinho na tabelae ao gravar da esse erro
Fatal error: Call to a member function bind_param() on a non-object in ... admin-midia\includes\classes\tratar-midia.class.php on line 262
e a linha 262 é esta
$_edita->bind_param('ssssisii', utf8_decode($fld_titulo), utf8_decode($fld_texto), utf8_decode($fld_fonte), $arquivo_link, $fld_arquivo_destacar_home, $_data_publicado, utf8_decode($fld_segmento), $fld_idm);
Qualquer ajuda é bem vinda[/size]
Discussão (7)
Carregando comentários...