Boa tarde amigos, andei sumido por muito tempo pois meu foco sempre foi Delphi. :blush:
Estou refatorando alguns relatórios antigos em PHP e resolvi criar uma classe para que fosse mais fácil gerenciar as SQL's de filtros e combos (famoso input-select).
Segue o conteúdo das units.
unit uclasses.php
//------------------
class TStringList
{
var $text;
function clear()
{
$this->text = '';
}
function add($s)
{
if (trim($this->text) == "")
$this->text = $s;
else
$this->text .= " " . $s;
}
}
unit umysql.php
//------------------
include("uclasses.php");
class TMySQLQuery
{
var $name;
var $sql;
var $resultado
private $database;
function __construct($AOwner, $AName)
{
if (!is_object($AOwner))
{
die("Erro ao criar Query, objeto pai inválido.");
}
if (trim($AName) == '')
{
die("Erro ao criar Query, o valor de AName nã pode ser ''.");
}
$this->sql = new TStringList(); // a criação da variavel $sql me parece correta
$this->name = $AName;
$this->database = $AOwner;
}
// ...
}
unit urelatorio.php
//------------------
<?php
include("umysql.php");
//... conexão com o banco de dados
$query = new TMySQLQuery($db,"Query1");
$query->sql->clear(); // aqui curiosamente não dá erro
$query->sql->add("select * from teste");
$query->open();
$config = array();
$config = $query->resultado;
function daerro()
{
$query->sql->clear(); // aqui dá erro, mas la no outro clear não deu... por quê?
$query->sql->add("select * from erro");
$query->open();
return $query->resultado["campoqualquer"];
}
echo daerro();
?>
O que eu acho estranho é justamente que quando eu chamo clear() da variável $query->sql na segunda vez que dá erro de Call a member function on a non-object. Na primeira ele até executa a SQL. :wacko:
Pergunta
McBlade
Boa tarde amigos, andei sumido por muito tempo pois meu foco sempre foi Delphi. :blush:
Estou refatorando alguns relatórios antigos em PHP e resolvi criar uma classe para que fosse mais fácil gerenciar as SQL's de filtros e combos (famoso input-select).
Segue o conteúdo das units.
O que eu acho estranho é justamente que quando eu chamo clear() da variável $query->sql na segunda vez que dá erro de Call a member function on a non-object. Na primeira ele até executa a SQL. :wacko:
Editado por McBladeLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.