繁体   English   中英

如何使用php_pdo_oci从数据库中选择数据?

[英]How to select data from database using php_pdo_oci?

我正在使用 php_pdo_oci 在我的 oracle 数据库上选择一个查询。 问题是它返回一个空值,即使有一个值要返回。

PHP 版本:5.4.31
数据库:Oracle 9i

这是我的连接,我尝试使用PDO::FETCH_BOTHPDO::FETCH_ASSOCPDO::FETCH_NUM仍然没有运气。 它仍然返回 0。请注意连接返回正常。

 public function databaseConnection(){
    # if connection already exists
    if ($this->db_connection != null) {
        return true;
    } 
    else {
        try {
            $this->db_connection = new PDO('oci:dbname='. DB_NAME . ';', DB_USER, DB_PASS,  array(
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC));
            return true;
        } catch (PDOException $e) {
            return $e->getMessage();    
        }
    }
    # default return
    return false;
}

这是我用来检查用户是否存在的函数:

public function check_user_exist($username, $active){
    $sql = $this->db_connection->prepare('SELECT USERNAME FROM ASUSERACCOUNT WHERE USERNAME = :username AND ACTIVE = :active');
    $sql->bindParam(':username', $username);
    $sql->bindParam(':active', $active);

    if($sql->execute()){
        return $sql->rowCount();
    }
    else{
        return $sql->errorInfo();
    }
}

我错过了什么或做错了什么?

根据@prodigitalson 的回答

文档

PDO::exec() 不会从 SELECT 语句返回结果。

并且由于您没有修改任何内容(没有插入、删除或更新),因此没有受影响的行,这就是PDO::exec返回的内容。

如果您希望数据使用准备好的语句或PDO::query 如果您想要行数,请在您的选择中使用计数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM