Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ndias

Call to a member function execute() on a non-object

Recommended Posts

Eu to tentando fazer uma function que retorne uma consulta a banco de dados MSSQL para pegar o último e o próximo id de uma tabela.

 

Segue o código:

 

function next_val($tabela,$coluna){
$sql = "SELECT TOP 1 ".$coluna." as NXTVAL FROM ".$tabela." ORDER BY ".$coluna." DESC";
$rs = $conn->execute($sql);
$next_val = $rs['NXTVAL'];
$next_val = ( $next_val + 1 );
$rs->Close();
$rs = null;
}
next_val("tabelaTeste", "id")
Antes eu executo um script de conexão utilizando o Provider SQLOLEDB:
$dbhost = "hostbanco"; #Nome do host

$db = "nomebanco"; #Nome do banco de dados
$user = "nomeusuario"; #Nome do usuário
$password = "senhabase"; #Senha do usuário

 

$conn = new COM ("ADODB.Connection") or die("Nâo foi possível carregar o ADO");

$connStr = "PROVIDER=SQLOLEDB;SERVER=".$dbhost.";UID=".$user.";PWD=".$password.";DATABASE=".$db;
$conn->open($connStr);

 

como faço para receber a minha conexão com o banco dentro da function, sem precisar abrir uma nova?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta setar a variável como global, dentro da função:

global $conn;

Compartilhar este post


Link para o post
Compartilhar em outros sites

global $conn; eu já havia tentado e não deu certo!

 

a solução que aparentemente encontrei foi mais fácil do que eu imaginava.

 

passei a variável $conn na function:

 

function next_val($tabela,$coluna,$conn){

}

 

só que agora estou com dificuldades de capturar o resultado no input hiden aonde eu chamo a função next_val("tabelaTeste", "id",$conn) e quero colocá-la na value

Compartilhar este post


Link para o post
Compartilhar em outros sites

bastou eu dar um return $next_val; para eu capturar o resultado na value do input hiden.

 

resolvido!

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.