Пользовательский класс PDO не работает тихо - PullRequest
0 голосов
/ 24 февраля 2011

По какой-то причине этот пользовательский класс PDO не может записать в базу данных.Просто тихо выходит из строя - сообщение об ошибке не выдается.Очень похожий пользовательский класс PDO (ReadPDO) прекрасно работает для чтения из базы данных.Сгенерированный оператор SQL отлично работает, когда его запрашивают в БД через PHPMyAdmin.Я дважды проверил пользовательские разрешения, и все кажется в порядке.

Я подозреваю, что я неправильно понимаю, как что-то работает.Любые идеи?

// Creates a write-only PDO, using config settings from inc_default.php 
class WritePDO extends PDO{

    public function __construct(){
        //Pull global DB settings
        global $db;
        global $write_host;
        global $write_username;
        global $write_password;

        try{
            parent::__construct("mysql:dbname={$db};host={$write_host}", $write_username, $write_password);
        } catch (PDOException $e){
            echo 'Connection failed: ' . $e->getMessage();
        }
    }
}

private function updatePlayer(){
    $conn = new WritePDO();
    $sql = "UPDATE {$this->hvz_db}
        SET 
        hvz_bitten      ='{$this->hvz_bitten}',
        hvz_died        ='{$this->hvz_died}',
        hvz_feedCode    ='{$this->hvz_feedCode}',
        hvz_status      ='{$this->hvz_status}',
        hvz_feeds       ='{$this->hvz_feeds}',
        hvz_lastFed     ='{$this->hvz_lastFed}',
        hvz_ozOpt       ='{$this->hvz_ozOpt}',
        hvz_parent      ='{$this->hvz_parent}'
        WHERE users_id  ={$this->id}";
    $query = $conn->exec($sql);
}

SQL, который он выдает, выглядит следующим образом:

UPDATE hvz_2011_spring SET hvz_bitten ='', hvz_died ='', hvz_feedCode ='NOMNOM', hvz_status ='Human', hvz_feeds ='0', hvz_lastFed ='', hvz_ozOpt ='0', hvz_parent ='' WHERE users_id =1

1 Ответ

1 голос
/ 24 февраля 2011

Вы уверены, что sql правильно?

Exec не отправляет сообщение об ошибке.

Попробуйте выполнить var_dump ($ conn-> errorInfo ()); после $ conn-> exec ($ sql);

/ Emil

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