Как выбрать конкретное поле из базы данных, используя php mdb2? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь выбрать конкретный идентификатор, который автоматически генерируется базой данных oracle для конкретного пользователя сеанса (из входа в систему и работает нормально). Я использую 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 должен быть распечатан, но вместо этого есть эта ошибка: Неустранимая ошибка: вызов неопределенного метода MDB2_Error :: fetchOne () в C: \ wamp64 \ www \ grahams \ home.php в строке 12

1 Ответ

0 голосов
/ 15 января 2019

Попробуйте использовать приведенный ниже код.

<?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 () выполняет запрос к базе данных и выбирает столбец из данного запроса.

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

?>
...