помочь с превращением этого запроса MySQL в запрос PDO - PullRequest
1 голос
/ 24 марта 2011

Я использовал это некоторое время, но с тех пор обновился до PDO вместо запросов mysql. Но я не могу заставить этот конкретный фрагмент работать вообще.

$query = mysql_query ($sql) or die (mysql_error());
while ($records = @mysql_fetch_array ($query)) {
    $alpha[$records['alpha']] += 1;
    ${$records['alpha']}[$records['id_clients']] = array(
        $records['first_name'],       //item[0]
    );
}

Я пробовал это

while ($records = $this->db->fetch_row_assoc($sql)) {
    $alpha[$records['alpha']] += 1;
    ${$records['alpha']}[$records['id_clients']] = array(
        $records['first_name'],       //item[0]
    );
}

и мой код PDO

public function query($statement)
    {
        return self::$PDO->query($statement);
    }
public function fetch_row_assoc($statement) {
    self::$PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        try
        {
            $stmt = self::$PDO->query($statement); 
            $result = $stmt->fetch();
            return $result;
        }catch(PDOException $e){
            echo $e->getMessage();
        }
        return false;
        //return self::$PDO->query($statement)->fetch(PDO::FETCH_ASSOC);

    }

Функция запроса работает, но я представил свою функцию fetch_row_assoc в надежде, что смогу сделать то же самое с mysql_fetch_asso.

$sql = "SELECT 
                    SUBSTRING(`last_name`, 1, 1) AS alpha,
                    SUBSTRING(`middle_name`, 1, 1) AS subMiddleName,
                    `id_clients`,
                    `type`,
                    `first_name`,
                    `middle_name`,
                    `last_name`,
                    `address`,
                    `primary_number`,
                    `secondary_number`,
                    `home_number`,
                    `office_number`,
                    `cell_number`,
                    `fax_number`,
                    `ext_number`,
                    `other_number`,
                    `comments`
                FROM `clients`
                WHERE `user_id` = 1
                AND `is_sub` = 0
                AND `prospect` = 1
                ORDER BY `last_name`";

1 Ответ

0 голосов
/ 24 марта 2011

Попробуйте это:

public function query($statement)
    {
        return self::$PDO->query($statement);
    }
public function fetch_row_assoc($statement) {
    self::$PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        try
        {
            $stmt = self::$PDO->query($statement); 
            $stmt->setFetchMode(PDO::FETCH_ASSOC);
            $result = $stmt->fetch();
            return $result;
        }catch(PDOException $e){
            echo $e->getMessage();
        }
        return false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...