如何使用PDO获取数据

时间:2015-12-23 20:00:03

标签: php mysql pdo

以下是详细信息: 1. PDO连接类,具有与DB连接的功能。说PDO_connect类。 2.逻辑类文件说MyLogic文件,MyLogic文件包含PDO_connect,另一个写函数的类说MyFunction Class。

问题: 我无法使用以下查询执行选择查询和获取对象。 MyFunction类具有以下功能:

function gCD($query_type,$connection_obj,$u_id,$c_id)
{
    if($query_type == 'SELECT')
    {
        $prepare_sql = $connection_obj->prepare("SELECT c_n from cs where u_id=:u_id and c_id=:c_id");
        $query_select_clients = $prepare_sql->execute(array(':u_id'=>$u_id,':c_id'=>$c_id));
        echo "\n".$prepare_sql->rowCount();
        exit; //This is also not working.
        $g_c_obj = $prepare_sql->fetch(PDO::FETCH_OBJ);
        var_dump($g_c_obj);
      }
}

所有参数都是从MyLogic文件,连接和其他详细信息传递的。 如果我执行此调试,则返回true:

var_dump($prepare_sql->execute(array(':u_id'=>$u_id,':c_id'=>$c_id)))

rowCount()fetch()都没有提供任何输出。你的帮助很有价值。

1 个答案:

答案 0 :(得分:1)

此信息对于评论来说太长了,所以我输入这个作为帮助调试案例的答案。

在使用PDO功能时测试每个案例。 prepareexecutefetch等每项功能都有一个返回值。捕获返回值,分析它并根据返回值执行操作。在适当的位置替换您的信息,并查看执行路径的停止位置。

<?php
$db = new PDO('mysql:host=localhost;dbname=xyz', 'user', 'pass');

gCD('SELECT', $db, 2, 2);

function gCD($query_type,$connection_obj,$u_id,$c_id)
{
    if($query_type == 'SELECT')
    {
        try
        {
            $prepare_sql = $connection_obj->prepare("SELECT c_n from cs where u_id=:u_id and c_id=:c_id");
            if ($prepare_sql === false)
            {
                echo "PDO prepare failed\n";
                return false;
            }
            $query_select_clients = $prepare_sql->execute(array(':u_id'=>$u_id,':c_id'=>$c_id));
            if ($query_select_clients === false)
            {
                echo "PDO execute failed\n";
                return false;
            }
            echo "\n".$prepare_sql->rowCount();
            $g_c_obj = $prepare_sql->fetch(PDO::FETCH_OBJ);
            if ($g_c_obj === false)
            {
                echo "PDO fetch failed\n";
                return false;
            }
            var_dump($g_c_obj);
            return true;
        }
        catch (Exception $e)
        {
            echo 'Exception: ', $e->getMessage(), "\n";
        }
    }
    else
    {
        echo 'Not a select statement', "\n";
    }
    return false;
}
?>