@sapul

Как правильно обработать запрос PDO в PHP Query?

Скрипт выдает ошибку. Как отработать результат при возврате значения False?

function db_connect()
## --  Подключение к СУБД MySQL.
{
	$host = "localhost";
	$user = "user-2";
	$pswd = "1";
        $db   = "iskra";
        
	$dbh = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pswd, array(	PDO::ATTR_PERSISTENT => true));
	
        $dbh->query("SET CHARACTER SET UTF8");

    return $dbh;
}

function get_submenu($parent)
## --  Выборка из БД наименование страниц и возврат результата.
{
    
    $result = "SELECT *
                        FROM m_pages
                            WHERE m_pages.parent='$parent'
                                ORDER BY m_pages.id";
    
    echo $result;
    
    $result = $dbh->query($result);   
           
    $result->setFetchMode(PDO::FETCH_ASSOC);
    
    $dbh = NULL;            
    return $result;
}


Значения d_list нет в m_pages.parent, в результате:
SELECT * FROM m_pages WHERE m_pages.parent='d_list' ORDER BY m_pages.id


Notice: Undefined variable: dbh in C:\xampp\htdocs\test\admin\db_fns_new.php on line 46
Fatal error: Call to a member function query() on null in C:\xampp\htdocs\test\admin\db_fns_new.php on line 46


Как правильно работать с query запросами?
  • Вопрос задан
  • 271 просмотр
Решения вопроса 2
DevMan
@DevMan
так в функции get_submenu переменная $dbh не определена, о чем и говорит нотис.
и кагбе невозможно вызвать метод у того, что не существует, о чем и говорит фатал эрор.

проблема не в запросе, а в том что в функции get_submenu нет подключения к базе.
Ответ написан
Комментировать
myspace
@myspace
$link = db_connect();

$getSubMenu = function($parent) use ($link)
## --  Выборка из БД наименование страниц и возврат результата.
{
    
    $result = "SELECT *
                        FROM m_pages
                            WHERE m_pages.parent='$parent'
                                ORDER BY m_pages.id";

    $result = $link->query($result);   
    $result->setFetchMode(PDO::FETCH_ASSOC);

    return $result;
};


$getSubMenu($parent);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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