使用if语句&获取记录功能php中的pdo查询

时间:2015-01-24 06:19:59

标签: php mysql pdo

我有函数pdo的问题,当它从数据库中获取1条记录时,结果为null;

connect.php

<?php

class dbConn{

    protected static $db;

    private function __construct() {

        try {
            self::$db = new PDO( 'mysql:host=localhost;dbname=item', 'root', '' );
            self::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        }
        catch (PDOException $e) {
            echo "Connection Error " . $e->getMessage();
        }

    }

    public static function getConnection() {

        if (!self::$db) {
            new dbConn();
        }

        return self::$db;
    }

}
?>

function.php

<?php
include 'connect.php';
class ajax_table {

    function detailitem($table){
        $db = dbConn::getConnection();
        $sql = "select * from ".$table."" or die(mysql_error());
        $q = $db->query($sql) or die("failed!");
        $res = $q->fetch(PDO::FETCH_ASSOC);
        return $res;
        //else echo "No records found";
    }     
}
?>

并显示

displayitem.php

<?php
$url = $_GET['url'];
$url=$url.'.html';

include 'connect.php';
include 'function.php';
$db = dbConn::getConnection();
$obj = new ajax_table();
$records = $obj->detailitem('product WHERE url = "$url"');
if($records){
    echo $records['name'];
    echo '<br>';
    echo $records['type'];
}else{
    echo 'no result';
 } ?>

数据库不为空,但结果显示 没有错误,也没有显示任何内容

1 个答案:

答案 0 :(得分:2)

如果您在以下行中看到正确:

$records = $obj->detailitem('product WHERE url = "$url"');

它将字符串作为&#34; $ url&#34; 传递,而不是$url变量的值。

所以改成它:

$records = $obj->detailitem('product WHERE url = \''.$url.'\'');