__set用于sql select语句的魔术方法

时间:2013-06-15 14:27:49

标签: php oop magic-methods

在这里,我将使用PHP __set magic方法创建一个使用SQL select的类。我的var_dump数组返回array(0) { }在浏览器中。我做了什么错误?

class helper{

public function __set($table,$id){

    $dbConfig=array("localhost","itXXXXX","itXXXXX","u?XXXXXXX");
               $pardConfig=new PDO('mysql:host='.$dbConfig[0].';'.'dbname='.$dbConfig[1],$dbConfig[2],$dbConfig[3]);

               $sql=$pardConfig->prepare("SELECT * FROM ".$table."WHERE id=".$id);
               $sql->execute();
               $result=$sql->fetchALL(PDO::FETCH_ASSOC); 
               var_dump($result);
  }
        }

$helper = new helper();
$helper->pard_menu = 99;

1 个答案:

答案 0 :(得分:1)

查看您的查询必须产生的错误。

您缺少表名与WHERE关键字之间的空格:

$sql=$pardConfig->prepare("SELECT * FROM ".$table."WHERE id=".$id);
// HERE ------------------------------------------^

将其更改为:

$sql=$pardConfig->prepare("SELECT * FROM ".$table." WHERE id=".$id);