2015-11-16 6 views
-1

Я использую FluentPDO для создания моих запросов.Как обнаружить ошибки с использованием FluentPDO

Когда я выполняю оператор insert, он возвращает False, если он не может этого сделать. Тем не менее, я не могу понять, как получить ошибку за неудачей.

Кто-нибудь знает, как обращаться с ошибками при использовании этой библиотеки?

Это мой текущий код ...

function doInsert() { 
    $pdo = new PDO("mysql:dbname=blog", "root", "password"); 
    $fpdo = new FluentPDO($pdo); 

    $values = [ 
     'field1' => 'value 1', 
     'field2' => 'value 2', 
     'field3' => 'value 3', 
    ]; 

    $query = $fpdo->insertInto('my_table', $values)->execute(); 
    if (!$query) { 
     // what to type here to determine error 
    } 
} 
+0

вы пробовали вместо этого отправил письмо автору? – Ghost

+0

В нижней части [страницы руководства] (http://lichtner.github.io/fluentpdo/) есть несколько советов по отладке. Вы их пробовали? – vascowhite

+0

Отправленный электронной почтой автор, но он сам опубликовал в Github, что он слишком занят, чтобы работать над проектом. Функция отладки дает только информацию о сгенерированном запросе, параметрах, подсчете строк и т. Д. И не предназначена для обработки ошибок. Кто когда-либо голосует, чтобы получить бесплатные точки стекирования, лучше иметь хорошее оправдание. Вопрос всегда может быть отредактирован на основе обратной связи, но простое голосование на голосовании просто лениво с вашей стороны. –

ответ

0

Это не ответ, но объяснение от автора (FluentPDO/BaseQuery.php линия: 98):

// At this point, $result is a PDOStatement instance, or false. 
    // PDO::prepare() does not reliably return errors. Some database drivers 
    // do not support prepared statements, and PHP emulates them. Postgres 
    // does support prepared statements, but PHP does not call Postgres's 
    // prepare function until we call PDOStatement::execute() (below). 
    // If PDO::prepare() worked properly, this is where we would check 
    // for prepare errors, such as invalid SQL.