Menu

PDOStatement::execute(): SQLSTATE[HY000]: General error: 17 database schema has changed

Help
Anonymous
2016-07-24
2018-02-05
  • Anonymous

    Anonymous - 2016-07-24

    Hi everyone,

    I write you because I'm having troubles when I use the following instructions to crawl an huge site:

    $crawler->setWorkingDirectory("/dev/shm/");
    $crawler->setUrlCacheType(PHPCrawlerUrlCacheTypes::URLCACHE_SQLITE);

    If I don´t use this instructions, the script crawls thousands of url but the process is killed by the O.S because It exhausts the memory,but when I use sqlite, the script only crawls 10 url max and the it ends without explanation. I got this error messages when I run my script with sqlite.

    PHP Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 17 database schema has changed in /var/www/html/crawler/libs/UrlCache/PHPCrawlerSQLiteURLCache.class.php on line 128
    PHP Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 17 database schema has changed in /var/www/html/crawler/libs/UrlCache/PHPCrawlerSQLiteURLCache.class.php on line 128
    PHP Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 17 database schema has changed in /var/www/html/crawler/libs/UrlCache/PHPCrawlerSQLiteURLCache.class.php on line 128
    PHP Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 17 database schema has changed in /var/www/html/crawler/libs/UrlCache/PHPCrawlerSQLiteURLCache.class.php on line 128

    What can I do for fix this?

    Thanks for your help!!!

     
  • Anonymous

    Anonymous - 2016-08-26

    Same here!

     
  • Anonymous

    Anonymous - 2018-02-05

    change /libs/UrlCache/PHPCrawlerSQLiteURLCache.class.php line 273 to

    //if ($this->PreparedInsertStatement == null) {
    

    and line 285 to

    //}
    

    then it works

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.