두 가지 기능을 가진 "test"클래스가 있습니다. 하나는 준비된 명령문을 작성하고 하나는 하나 이상 실행하는 것입니다. 문제는 첫 번째 바인딩에서 바인딩을 설정하고 다른 함수에서 vars를 채우는 방법입니다. 당신은하지는여러 기능에서 PDO 사용 - 준비된 명령문 재사용
class test {
private static $moduleSql = "SELECT
id,
module
FROM
phs_pages
WHERE
prettyurl = :prettyUrl AND
mainId = :mainId
";
private static function pre() {
$db = Db_Db::getInstance();
self::$preModuleSql = $db->prepare(self::$moduleSql);
self::$preModuleSql->bindParam(':prettyUrl', $prettyUrl);
self::$preModuleSql->bindParam(':mainId', $mainId);
}
private static function getClassByDb($mainId = 0, $id = 0) {
$prettyUrl = self::$parts[$id];
self::$preModuleSql->execute();
self::$preModuleSql->debugDumpParams();
$result = self::$preModuleSql->fetch(PDO::FETCH_ASSOC);
// get lower level classes
if (isset(self::$parts[$id + 1])) {
self::getClassByDb($result['id'], $id + 1);
} else {
return $result;
}
}
}
이 내가 할 것입니다. 그것은 아주 잘 작동합니다. 거기에 대한 욕망이 있다면, 나는 대답에 내 코드를 게시 하겠지만, 꽤 늪지 표준 PHP입니다. –