我写了一个像bellow
这样的代码class helper{
public function __set($table,$type){
global $dbConfig;
$pardConfig=new PDO('mysql:host='.$dbConfig[0].';'.'dbname='.$dbConfig[1],$dbConfig[2],$dbConfig[3]);
$sql=$pardConfig->prepare("SELECT * FROM ".$table." WHERE menu_type=".$type);
$sql->execute();
$sql=$pardConfig->prepare("SELECT * FROM ".$table." WHERE id=".$type);
$sql->execute();
$result=$sql->fetchALL(PDO::FETCH_ASSOC);
var_dump($result);
}
}
$helper = new helper();
$helper->pard_menu = "main"; <<--- OUTPUT array(0) { }
$helper->pard_menu = 99;
/\_________________________________________ OUTPUT
array(1) { [0]=> array(4) { ["id"]=> string(2) "99" ["menu_title"]=> string(8) "leftmenu" ["menu_type"]=> string(4) "main" ["menu_description"]=> string(14) "left side menu" } }
正如您所看到的,有一个名为“main”的menu_type ,但我没有从数据库中获取结果,但是 id 正在获取结果。相同数据库表
答案 0 :(得分:2)
需要在SQL语句中引用字符串。
但是如果您使用查询参数,则不必担心引号:
$sql=$pardConfig->prepare("SELECT * FROM ".$table." WHERE menu_type=?");
$sql->execute(array($type));
但是,您不能对FROM子句中的表使用这样的参数。您必须小心只使用有效的表名。