准备好的声明选择PHP

时间:2014-10-03 18:31:34

标签: php mysql pdo prepared-statement

我试图制作一个非常抽象的PDO选择函数,但出于某种原因,我得到了一个空数组返回。

function listAllProducts () {
    return select('products', '', '');
} 

function select( $tableName, $property, $value ){
    switch($tableName)
    {
        case "products":
            $tbl = 'products';
            break;
        case "cart":
            $tbl = 'cart';
            break;
    }
    switch($property){
        case "id":
            $property = 'id';
            break;
        case "name":
            $property = 'name';
            break;
    }

    $db = new PDO('mysql:host=localhost;dbname=ecom;charset=utf8', 'root', 'PASSWORD');
    if( strcmp($value, '') != 0 ){ //if $value is not empty
        $query = "SELECT * FROM $tbl WHERE $property = :value";
        $stmt = $db->prepare($query);
        //bind params
        $stmt->bindValue(':value', $value);

    }
    else{
        $query = "SELECT * FROM $tbl";
        $stmt = $db->prepare($query);
    }
    //execute
    try{
        $stmt->execute();
        $result = $stmt->fetchAll();
        return $result;
    }
    catch(Exception $e){
        return $e;
    }
}

我有什么简单的遗失吗?

编辑:感谢您的帮助,但在添加了一个开关并从我的绑定参数中删除了表格和列后,我仍然得到一个空的结果集:(

编辑2:我发现了一个有点复杂的解决方案,上面添加了它,但它看起来像现在正在工作!需要进行更多测试。

0 个答案:

没有答案