php вызов функции-члена prepare () для необъектной проблемы - PullRequest
0 голосов
/ 16 июня 2011
<?php
    $dbtype = 'mysql';
    $mysql_host = "localhost";
    $mysql_database = "mydb";
    $mysql_user = "root";
    $mysql_password = "";
    try {
        $db = new PDO ( $dbtype . ':host=' . $mysql_host . ';dbname=' . $mysql_database,         $mysql_user, $mysql_password, array (PDO::ATTR_PERSISTENT => true ) );
        return $db;
    } catch ( PDOException $e ) {
        return false;
    }
?>

Выше моего db.php

<?php
   require db.php";
   ...
   global $db;
   $stmt = $db->prepare ( "INSERT INTO quote (title, contactname) VALUES (:a, :b);" );

Я действительно смог правильно запустить его под своей IDE (wamp-сервер ZendStudo), но после загрузки на хост-сервер я получил эту ошибку. Кто-нибудь сталкивался с той же проблемой, прежде чем может помочь мне, как исправить?

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

PDO не генерирует исключения, если вы явно не указали это сделать:

$db = new PDO(...);
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
0 голосов
/ 16 июня 2011

У меня может быть много причин, но одна из очевидных причин состоит в том, что у вас было исключение PDOException, а затем $db == false, что объясняет сообщение об ошибке.

Попробуйте проверить, правильно ли установлено $db как PDO или false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...