Mysql
 sql >> база данни >  >> RDS >> Mysql

PDO и php - Извикване на функция-член подготви() на необект

@papaja удари нокътя точно в главата. Вашата PDO връзка се провали, така че нямате PDO обект, върху който да стартирате метода за подготовка.

На върха на главата ми, мисля, че пропускате крайния цитат на низа $dsn. Вероятно искате да добавите следното след $this->dbname и преди точка и запетая:

. "'"

Това е единична кавичка, опакована в двойни кавички. Използвам следния синтаксис, за да създам DSN низа:

"mysql:host=$this->HOST;dbname=$this->DATABASE"

Както и да е, създайте тестов файл, за да знаете точно какъв е проблемът. Тестовият файл трябва да изглежда така:

class TestDatabase{

    private $host      = DB_HOST;
    private $user      = DB_USER;
    private $pass      = DB_PASS;
    private $dbname    = DB_NAME;
    private $dbh;


    public function __construct(){

        $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;

        $options = array(
            PDO::ATTR_PERSISTENT    => true,
            PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION
        );

        $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
    }
}

Обърнете внимание, че не изпълняваме инстанцирането на PDO обекта в рамките на блок try catch. Докато виеникога не бихте направете това в производството, ще бъде полезно за вашия тест, защото ще предизвика фатално изключение, съдържащо всички подробности за вашата връзка.

Сега инстанцирайте тестовия клас и продължете с отстраняване на грешките, които получавате. Отново те ще бъдат по-подробни от предишната грешка, защото ще бъде неуловено PDO изключение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO – Извличане на Assoc в цикъл „while“.

  2. върнете номера на оригиналния ред на mySQL

  3. Как мога да направя заявка за текст, съдържащ символи на азиатски език в MySQL?

  4. Форматирайте резултата от mysql заявката в желания формат

  5. Връщане на множество набори от резултати от MYSQL Съхранена процедура