如何使用mdb2 php从数据库中选择特定字段?

时间:2019-01-15 06:46:46

标签: php oracle mdb2

我正在尝试选择一个由oracle数据库自动为特定会话用户生成的特定ID(从登录及其工作情况来看)。我正在使用MDB2来实现这一点。我关注的是梨子:MDB2手册,按原样进行了编码,但是出现错误。请帮忙。

我已经使用fetchOne(MDB2_FETCHMODE_ASSOC)从阅读手册中实现了这一点并给出了错误

<?php   
session_start();
$user = $_SESSION['user'];
echo "Welcome:\t".$user;
require_once 'MDB2.php';//pear MDB2
include "conn.php";
 $do= "SELECT customer_id FROM customer WHERE username=".$user;
 $query= $db->query($do);
 if($one=$query->fetchOne(MDB2_FETCHMODE_ASSOC)){
    $id= $one['customer_id'];
echo ($id);
}
?>

应该打印出数字2,但是出现以下错误: 致命错误:在第12行的C:\ wamp64 \ www \ grahams \ home.php中调用未定义的方法MDB2_Error :: fetchOne()

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码。

<?php   
session_start();
$user = $_SESSION['user'];
echo "Welcome:\t".$user;
require_once 'MDB2.php';//pear MDB2
include "conn.php";
    $do= "SELECT customer_id FROM customer WHERE username=".$user;
    $id = queryOne($do);
    if(isset($id))
    {
        echo $id;
    }
?>

由于queryOne()查询数据库并从给定查询中选择列。

编辑: 在conn.php中检查连接是否正常。以下是示例代码。

<?php

$dsn = array(
    'phptype'   => 'oci8',
    'hostspec'  => null,
    'username'  => 'oci_username',
    'password'  => 'oci_password',
);

// Establish database connection
$db = MDB2::connect($dsn);

// Check if the connection was established successfully

if (PEAR::isError($db)) {
    die('Could not create database connection. "'.$db->getMessage().'"');
}

?>