Hy все, я не могу обернуть вокруг себя. Я пытаюсь получить некоторые данные из таблицы, используя PDO. это мой код:Проблемы с php-подключением к базе данных mySQL
//in db.php I have the connection:
$host = 'localhost';
$db = 'APL';
$dbuser = '';
$pass = ' ';
try{
$conn = new PDO("mysql:host=$host;dbname=$db", $dbuser, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
//in my file I have this:
$id = $_GET['id'];
$sel_sql = "SELECT * FROM users WHERE id =:id";
$stmt = $conn ->prepare($sel_sql);
$stmt -> bindParam(':id', $id);
$stmt -> execute();
$result = $stmt -> fetchAll(PDO::FETCH_ASSOC);
Проблема заключается в том, что print_r ($ результат) «1» возвращает (только значение 1, поэтому я не могу получить доступ к любым данным, хранящимся в таблице) до тех пор, как $ _SESSION [ «пользователь»]. Весь сбор данных работал нормально, если $ _SESSION ['user'] не установлен.
Может кто-нибудь объяснить, почему это происходит? (Я довольно новичок в этом, и я действительно пытаюсь понять, почему возникают некоторые проблемы).
Спасибо!
Вы не используете '$ _SESSION ['user']' в любом месте фрагмента кода, поэтому ваша ошибка, вероятно, находится где-то в другом месте. –
'fetchAll()' никогда не возвращает число, поэтому вы должны переписать свою переменную где-то еще. – jeroen
Я знаю, что fetchAll() должен возвращать массив (на других страницах, тот же самый код возвращает то, что ожидается), поэтому я не знаю, почему он print_r ($ result), который помещен прямо под секцией кода, которую я опубликовал возвращает 1. –