PDO Query ничего не печатает - PullRequest
0 голосов
/ 07 июля 2010

У меня есть следующая функция, которая позволяет выполнить запрос с условием where. Но, похоже, не дает никаких результатов.

Я могу подключиться к базе данных, так что это не проблема.

Любая помощь будет оценена.

 public function executewhereQuery(Array $tableData, $fieldType, $table, $tableField){

    $dbh = $this->connect();

    try{    
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        /*** fetch into an PDOStatement object ***/
        $stmt = $dbh->prepare("SELECT * FROM ".$table." 
        WHERE ".$tableField." = :fieldValue");

        if($fieldType=='int'){
            $stmt->bindParam(':fieldValue', $fieldValue, PDO::PARAM_INT);
        }
        else{
            $stmt->bindParam(':fieldValue', $fieldValue, PDO::PARAM_STR);   
        }
         $stmt->execute($tableData);

        /*** fetch the results ***/
        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

        return $results;

        /*** close the database connection ***/
        $dbh = null;
    }
    catch(PDOException $e){
        echo $e->getMessage();
    }
} 

Я вызываю функцию, используя следующее:

$mydb = new Dbpdo_Database();


$tableData = Array('fieldValue' =>  1); 

$table = 'news';
$tableField = 'newsID';
$fieldType = 'int';         

$results = $mydb->executewhereQuery($tableData, $fieldType, $table, $tableField);

foreach ($results as $row){
echo $row['newsTitle'].'-'.$row['newsText1'].'<br />';
}

Ответы [ 2 ]

1 голос
/ 07 июля 2010

Ваша проблема в том, что $fieldValue нигде не установлен. Вы передаете ассоциативный массив с ключом fieldValue.

Кроме того, установка $dbh на null не закрывает соединение с БД, а только уничтожает экземпляр PDO. И в любом случае, эта строка не будет выполнена, потому что она следует за оператором return.

0 голосов
/ 07 июля 2010

Попробуйте повторить запрос SQL, чтобы убедиться, что переменные $table и $tableField соответствуют ожиданиям. Я не вижу ничего в вышеприведенном, что могло бы привести к тому, что результаты не будут возвращены, кроме того, что в вашей базе данных нет данных, соответствующих указанному условию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...