Помогите исправить ошибку в коде pdo

311
13 марта 2017, 11:57

Начал писать разные функции для сокращения кода, и вот на что наткнулся. Написал такую функцию:

function sql($sql,$array)
{
global $db;
try
{
$start =  $db->prepare($sql);
$start -> $db->execute($array);
return $start->fetch(PDO::FETCH_ASSOC);
}
catch (PDOException $e)
{
return false;
}
}

И запустил её:

$get = sql("SELECT `title`, `full` FROM `News` WHERE `id` = ? LIMIT 1" , array($_GET['n']));
exit($get['title']);

По идее же должно работать? Выдает ошибку:

Catchable fatal error: Object of class PDO could not be converted to string in /var/www/html/system/functions.php

Как исправить?

Answer 1

Вам возвращает в $get ObjectPdo, а вы его пытаетесь вывести как строку на 54й строке. Для начала, нужно сделать так

$result = $get->fetch(PDO::FETCH_ASSOC);//Или любой другой тип
var_dump($result);
Answer 2

Допустил банальную ошибку :) Рабочий код:

<?php
function sql($sql,$array)
{
$db_host = '';
$db_user = '';
$db_pass = '';
$db_base = '';
$db = new PDO('mysql:dbname='.$db_base.';host='.$db_host, $db_user, $db_pass);
try
{
$start =  $db->prepare($sql);
$start -> execute($array);
return $start->fetch(PDO::FETCH_ASSOC);
}
catch (PDOException $e)
{
return false;
}
}
$get = sql("SELECT `title`, `full` FROM `News` WHERE `id` = ? LIMIT 1" , array(1));
print_r($get['title']);
?>
READ ALSO
Активные ссылки в меню Opencart 2

Активные ссылки в меню Opencart 2

Доброго дняЕсть вопрос насчет opencart 2

388
Microtime в PHP?

Microtime в PHP?

Микросекунда это 1/миллионная секунды, но в php при microtime(true) никогда не удавалось увидеть значение больше 9999 после точкиЭто внутреннее ограничение...

381
Оценка кода и что нужно знать джуниору?

Оценка кода и что нужно знать джуниору?

Здравствуйте! Я самоучка С++, и меня интересует, какие знания мне нужны, чтобы меня приняли на работуИ ещё вопрос: хватит ли моих нынешних знаний?...

360
Перегрузки в конструкторах классов

Перегрузки в конструкторах классов

Не нашел, что-то ответа на такой простой ответДо этого не делал в конструкторе перегрузки таким образом (см

310