2013-07-04 4 views
0

자, 이제 프로 시저에서 OOP로 천천히 마이그레이션하고 있습니다.객체 지향 PHP를 사용하여 MySQL에서 설정 가져 오기

$query = mysql_query("SELECT * FROM `settings`"); 
while ($current_setting = mysql_fetch_array($query)) { 
    $setting[$current_setting['setting']] = $current_setting['value']; 
} 

로서 :

난 '설정'및 '값'필드에 정의 된 각 설정에 대한 행 이루어진 단순한 2 열 설정 테이블에서 직접 설정을 데이터 당기는이 방법을 사용하기 위해 사용 당신은 볼 수있다. 나는 그것을 조작하여 단순히 $ setting [ 'any_setting_name']을 사용하여 해당 설정의 행에 해당 'value'를 표시 할 수 있었다. 나는 이것이 일을하는 어리석은 방법인지는 모르겠지만, 어쨌든 계속 나아갈 것입니다.

그러나 객체 지향 PHP 로의 이동 이후, 나는 비슷한 것을하는 법을 정말로 모릅니다. 당신이 볼 수 있듯이 ..

$query = $mysqli->query("SELECT * FROM `settings`"); 
while ($current_setting = $query->fetch_object()) { 
    echo $current_setting->setting; // echo's each setting name 
    echo $current_setting->value; // echo's each setting value 
} 

, 나는 데이터를 검색 할 완벽하게 수 있어요,하지만 내가 원하는 형태로 나중에 사용할 수있을 것입니다 다음의 값을 에코 할 $setting->setting_name;setting은 'setting_name'과 같습니다.

기본적으로 설정 테이블에 행이있는 경우 setting이 ' te_url '이고 value은'http://example.com/ '입니다. $ setting-> site_url이 필요합니다. 'http://example.com/'.. 또는 같은 효과가있는 것. ..

나를 도와 줄 사람이 누구일까요? 나는 지금 벽돌 벽에있다. 아마 아마도 ... 바보 같은 내가 간과하고있는 것이다.

+0

감사 그랑프리 : I 이후이를 올리기 것을 깨닫게했지만, 아직도 내가 그것을 할 거라고 방법을 정확하게 모르는, 현재 내가 여전히 $ 설정 -에 설정 이름을 추가 할 수 있습니다> 설정 설정 값을 $ setting-> value로 설정해도 여전히 $ setting-> setting_name = 값을 얻을 수 없습니다. ( – Chuckun

답변

0

자원을 가지고 작업하고 있으므로 포인터가있다. 일단 끝나면 더 이상 사용할 수 없습니다. 나는 당신이 그것을 다시 놓을 수 있다고 생각하지만 왜 옛것과 새로운 것을 혼합하지 않습니까? 난 당신이 너무 많은 오버 헤드를 가지고려고 생각하지 않는다

, 이런 모든 문제 어쨌든, 할 수있는 것이 무엇인가 :

$settings = array(); 
$query = $mysqli->query("SELECT * FROM `settings`"); 
while ($current_setting = $query->fetch_object()) { 
    $settings[$current_setting->setting] = $current_setting->value; 
} 

지금 당신은 당신이 원하는만큼 $settings를 사용할 수 있습니다.

UPDATE

이 테스트하거나 사용하지만,이 같은 뭔가를 찾고하지 않았

? 다음의 의사 코드를 고려하면 실제로 작동하지 않을 수 있습니다.

$settings = new stdClass(); 
$query = $mysqli->query("SELECT * FROM `settings`"); 
while ($current_setting = $query->fetch_object()) { 
    $settings->{$current_setting->setting} = $current_setting->value; 
} 
+0

오브젝트 내에 오브젝트를 저장하려고 할 때 느낌이 들지만 – hungerstar

+0

믹싱을 고려했습니다. 그런 식으로하지만 나는 일반적으로 $ settings [ 'site_url']의 사용을 피하고 일관되게하기 위해 순전히 $ settings-> site_url로 이동하려고 노력했다. 원하는대로 클래스를 조작 할 수있는 방법 결과? – Chuckun

+0

편집 : 먼저 추측해야합니다 : PI는 두 번째 부분을 시도하지만 첫 번째 부분은 실패 할 것입니다. - 나는 평소대로 것들을 overthink 해요 : P – Chuckun

관련 문제