mysql — значения не возвращаются из базы данных переполнение стека

новичок здесь, и я нахожусь в своем уме с этой проблемой. Притча проста; Я пытаюсь выбрать идентификатор пользователя из базы данных на основе значения из файла cookie сеанса. Я подтвердил, что SQL работает так, как я запускал его через сам sql, и единственное, о чем я могу думать, — это то, что он не выполняется или мои выборки или привязки неверны.

<?php
session_start();
$cart = $_SESSION["cart"];

try{
require "connect.php";
$id = "SELECT id_no FROM eCustomer WHERE surname = :uid";
echo $id . '<br />';

$idfetch=$dbh->prepare($id);
$idfetch->bindValue(":uid", $_SESSION["uid"]);
$idfetch->execute();

$customer_id = $idfetch["id_no"];

echo $customer_id;

$dbh=null;

} catch (PDOExeption $e){
echo $e;
}
?>

Это должно отразиться на моем браузере

SELECT id_no FROM eCustomer WHERE surname = :uid
1

Но это только вывод

SELECT id_no FROM eCustomer WHERE surname = :uid

Я также попытался поместить переменную сеанса непосредственно в оператор SQL без bindValue

$id = "SELECT id_no FROM eCustomer WHERE surname = '" . $_SESSION["uid"] . "'";

Какие выходы в мой браузер

SELECT id_no FROM eCustomer WHERE surname = 'Mclellan'

(Макклелан в моем сессионном печенье)

Любая помощь будет принята с благодарностью.

0

Решение

Вы фактически выполнили заявление, но на самом деле вы этого не сделали ->fetch()редактировал это еще. Вы пропустили эту часть:

$results = $idfetch->fetchAll(PDO::FETCH_ASSOC);
// print_r($results);
foreach($results as $row) {
echo $row['id_no'];
}

Примечание:

Если вам требуется только один ряд, то один ->fetch() Вызов должен быть достаточным:

$row = $idfetch->fetch(PDO::FETCH_ASSOC);
echo $row['id_no'];
3

Другие решения

Похоже, вам не хватает фактической выборки результатов

вам нужна строка, как показано ниже $idfetch->execute();

$customerid = $idfetch->fetch(PDO::FETCH_ASSOC);

после этого ваш echo $customerid["id_no"]; должно сработать.

Причина в том, что все, что вам нужно сделать php — это выполнить запрос, не сказав ему, чтобы он извлекал результаты из запроса.

Кроме того, вышеизложенное относится к использованию PDO, поскольку, похоже, вы используете его. Если вы используете mysqli, то это, вероятно, не поможет.

2

По вопросам рекламы [email protected]