0

我正在尝试选择由 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 应该被打印出来,但出现了这个错误: Fatal error: Call to undefined method MDB2_Error::fetchOne() in C:\wamp64\www\grahams\home.php on line 12

4

1 回答 1

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().'"');
}

?>
于 2019-01-15T07:08:13.990 回答