PDO查询不打印任何内容

时间:2010-07-07 14:09:09

标签: php pdo

我有以下功能,可以使查询与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 个答案:

答案 0 :(得分:1)

您的问题似乎是$fieldValue未在任何地方设置。您正在传递一个具有fieldValue键的关联数组。

此外,将$dbh设置为null不会关闭数据库连接,它只会破坏PDO实例。无论哪种方式,该行都不会执行,因为它遵循return语句。

答案 1 :(得分:0)

尝试回显您的SQL查询,以确保您的$table$tableField变量符合预期。除了数据库中没有符合指定条件的数据外,我在上面看不到会导致没有返回结果的任何内容。