>

Setting 의 새 인스턴스를 만들려고합니다.   __construct() 를 호출하는 개체

PHP PDO를 사용하고PDO :: FETCH_PROPS_LATE를 제한합니다. 불행히도 나는이 경고를 받고 있습니다 (바인딩이 작동하지 않습니다).

열 값을 생성자 메서드에 전달하는 방법

Warning: Missing argument 1 for Setting::__construct() in pdo.php.

Notice: Undefined variable: key in pdo.php.

class Setting
{
    protected $key, $value, $displayable;
    public function __construct($key, $value = null, $displayable = 1)
    {
        $this->key         = $key;
        $this->value       = $value;
        $this->displayable = $displayable > 0;
    }
}
while($mashup = current($mashups))
{
    $stmt = $dbh->prepare('SELECT `key`, value, displayable
        FROM setting WHERE mashup_id = :id');
    $stmt->bindParam(':id', $mashup->id, PDO::PARAM_INT);
    $stmt->execute();
    $settings = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
       'Setting');
}
$stmt->closeCursor();

  • 답변 # 1

    기본이 아닌 매개 변수 $key 가 있습니다  생성자에서 :

    public function __construct($key, $value = null, $displayable = 1)
    
    

    이 작업을 수행 할 때 :

    $settings = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'Setting');
    
    

    오류 : warning: Missing argument 1 for Setting::__construct() in pdo.php  매개 변수 $key 에 대해서만 발생합니다.  기본값이 아니기 때문입니다.

    fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,... 의 올바른 사용법 이렇습니다 :

    $variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
                               'classname', 
                                <array of parameter names(in order) used in constructor>);
    
    

    이러한 경우 :

    $variable = $stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,
                                'Setting', 
                                 array('key', 'value', 'displayable');
    
    

  • 이전 gdb - XCode 4 콘솔의 디버그 출력을 로그 파일로 리디렉션
  • 다음 문자열에서 문자를 바꾸는 효율적인 방법 (java)?