PDO prepared и функции

Рейтинг: 0Ответов: 1Опубликовано: 30.10.2014

В общем, такая проблема. PDO не видит объекта при вызове запроса функцией.
Сначала было так:

<?php
include 'pdoconnect.php';
function get_block($name){
$prepare = $db->prepare("SELECT `code` from `items` where `name = $name");  
$prepare->execute();
$item = $prepare->fetch(PDO::FETCH_ASSOC);
$user_menu = $item[`code`];
return $user_menu
}

function check_user_menu(){
if (empty($_SESSION['login'])){
$name = "user_menu1";
get_block($name);
}else{
$name = "user_menu2";
get_block($name);
}
}

?>

Выкинуло:

Fatal error: Call to a member function prepare() on a non-object

Начал эксперементировать, решил биндить данные (да-да, тапками не кидайтесь).

Т.е. строка запроса изменилась на

   $prepare = $db->prepare("SELECT `code` from `items` where `name = :name");

И добавилось:

$prepare->bindParam(":name", $name, PDO::PARAM_STR);

Потом исправил на:

$prepare = $db->exec("SELECT `code` from `items` where `name` = $name");

Однако - та же песня.

Уважаемые, что я мог опять сделать не так?

Ответы

▲ 2
function get_block($name){
$prepare = $db->prepare("SELECT `code` from `items` where `name = $name");

ну и откуда здесь $db-то появится?

Начал эксперементировать, решил биндить данные (да да, тапками не кидайтесь).

Я скорее тапком кину за исходный вариант.