Задать вопрос
@svilkov87

Как разместить запрос к базе данных PDO внутри функции на PHP?

Всем привет!
Хочу выполнять запрос внутри функции и выводить результат, как правильно это оформить ?
Есть подключение к БД и я хочу, чтобы производился запрос, но выдает ошибку(см ниже):
<?php
	include ("include/connection.php");
    
    ## проверка ошибок
    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE); 
    
    if(!empty($_GET)){
    $id = intval($_GET['id']);
    
    //функция для выборки пре-статей
    function getPreArt(){
        ## Выбираем статьи относящиеся к этим тегам 
        $st = $pdo->prepare('SELECT `ida` FROM `summary_table` WHERE idt=:idt');
        $st->bindParam(':idt', $id, PDO::PARAM_INT);
        $st->execute();
        $art = $st->fetchAll();
        
        ## Небольшая е...та с тем что бы многомерный массив в строку превратить
        $StringArray = array();
        for ($i = 0; $i < count($art); $i++) {
            $StringArray[] = $art[$i]['ida'];
        }
        ## Превращение одномерного массива в строку
        $StringTag = implode(',', $StringArray);
        
        ## Выбираем тайтл статьи относящихся к этим тегам
        $artFull = $pdo->query('SELECT `id`, `title`,`text` FROM `article` WHERE `id` IN ('.$StringTag.') ')->fetchAll();
        
        return $artFull;
    }
    
    $preArt = getPreArt();
    
    }
    
    //отладка   
    echo "<pre>";
    var_dump($preArt);
    echo "</pre>";
  
?>


ошибка, которую выдает:
Notice: Undefined variable: pdo in /var/www/serg/data/www/mypovar.tt90.ru/link.php on line 15

Fatal error: Call to a member function prepare() on null in /var/www/serg/data/www/mypovar.tt90.ru/link.php on line 15


Очевидно, что я что-то не передал куда-то...
Прошу помочь.
  • Вопрос задан
  • 1116 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
DevMan
@DevMan
так $pdo у вас в функции не определена, о чем вам английским по белому и говорится.
попробуйте для начала первой строкой в функции написать
global $pdo;

да, это плохо, но учить вас хорошему у меня нет сил.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы