0

我创建了一个用于编写 sql 查询的类,在该类中我使用了后期静态绑定概念,并且我试图在不同的类中调用它的 insert 方法来插入值,这里是 sqlQuery 类

  class sqlQuery
{
    public static $table=" table 1 ";
    public static $colum1="  colum1  ";
    public static $colum2=" colum2  ";
    public static $colum3=" colum3  ";
    public static $colum4=" colum4  ";
    public $value1=" value1 ";
    public $value2="  value2   ";



   public function insert( $value1,$value2)
    {
    echo "INSERT INTO" .static::$table ."(" . static::$colum1 .' , ' .static ::$colum2. ")  VALUES('$value1' , '$value2')" ;        
    }

}

这是我的第二个类文件,我在其中使用第一类中的插入方法我正在尝试做的事情,使用后期静态绑定从此类中获取表名和列......请帮助我该怎么做......这是我的二等文件

  class gallery extends logo 
{
    public $object;

    public static $colum1=" status ";
    public static $colum2=" order ";
    public static $colum3=" colum3  ";
    public static $colum4=" colum4  ";

   function __construct()
     {
        parent::__construct();
        //$this->object=new sqlQuery();


    }

    function insert()
     {
        $query=new sqlQuery();

        $query1=new sqlQuery();
        $call=$query1->insert('active','10'); 


     }

  }

 Help me thanks in advance.....
4

1 回答 1

1

后期静态绑定是关于父子关系的。目前还不清楚你想得到什么。你应该有一些 sqlQuery 的子类来使用后期静态绑定。就像是

class gallerySqlQuery extends sqlQuery
{
    protected static $colum1=" status "; // better private or protected
    protected static $colum2=" order "; // you don't need it to be public
    protected static $colum3=" colum3  ";
    protected static $colum4=" colum4  ";
}

在画廊类中,您应该调用此类的方法

$query1=new gallerySqlQuery();
$call=$query1->insert('active','10'); 

然后,您不需要在 sqlQuery 类中声明所有这些 public static $colum1 等。

于 2015-04-15T08:41:59.643 回答