0

私は以下のようなコードを書いています

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は結果をフェッチしています。同じデータベース テーブル。

4

1 に答える 1

2

文字列は、SQL ステートメントで引用符で囲む必要があります。

ただし、クエリ パラメータを使用する場合は、引用符について心配する必要はありません。

$sql=$pardConfig->prepare("SELECT * FROM ".$table." WHERE menu_type=?");
$sql->execute(array($type));

ただし、FROM 句のテーブルにこのようなパラメーターを使用することはできません。有効なテーブル名のみを使用するように注意する必要があります。

于 2013-06-15T18:36:58.080 に答える