문제

즉, 다음과 같은 준비된 진술과 함께.

select col1,...coln from table where col3 = ?

$ mysqli-> field_count를 사용하여 반환되는 열의 수를 얻을 수 있다고 생각합니다 (시도하지 않음).

그러나 각 열 이름을 bind_results에서 반환 된 값에 연결하는 방법이 있습니까? 나는 항상 명령 자체에서 열 이름을 구문 분석하려고 시도 할 수 있지만, 그것은 내가 내려 가고 싶은 도로가 아닙니다.

문맥:

클래스 속성을 데이터베이스에서 반환 한 열 이름에 맵핑하는 PHP 인터페이스를 정의 할 수 있기를 원합니다. 그래서 주어진

class A implements IColumnMapped{
    public $prop1, $prop2; private $map;
    public function __construct() {
        $map = array();
        $map['col1'] = & $this->prop1;
        $map['col2'] = & $this->prop2;
    }
    public function getMap() { return $this->map;}
}

그리고

$mysqli->prepare("select col0, col1, col2, col3 from table");

Bind_Results를 사용하고 (의사 코드)와 같은 작업을 수행 할 수 있습니다.

for($resultColumns as $columnName) {
    if(isset($map[$columnName])) $map[$columnName] = $results[$columnName];
}

필요한 두 열만 꺼내어 클래스 A의 올바른 속성에 할당하십시오.

도움이 되었습니까?

해결책

나는 믿는다 mysqli_result :: fetch_object 그리고 mysqli_result :: fetch_fields 당신을 도울 수 있습니다.

다른 팁

이 수정에 감사드립니다. 'Select *'S 앞에서 선택할 수 없을 때 매우 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top