MySQL一般错误2031

时间:2014-05-08 12:27:18

标签: mysql pdo

我一直在:

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2031 ' in XXXXX

我使用的代码是:

$CR = $this->db->query('SELECT COUNT(*) FROM entities  WHERE (entities.typeId = 2 OR entities.typeId = 1)');
$count = $CR->fetchColumn();

我尝试过使用prepare,但我得到的结果相同。

知道造成这种情况的原因以及我如何解决这个问题?

class Database extends PDO {
    function __construct($user = 'xxx', $pass = 'xxx', $database = 'abc', $host = 'xxx', $port = 'xxx')
    {
            parent::__construct('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $database, $user, $pass);
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->setAttribute(PDO::ATTR_PERSISTENT, FALSE);
            $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
            $this->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
            $this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, TRUE);
            $this->exec("SET NAMES utf8");
    }
}
$this->db = new Database();

1 个答案:

答案 0 :(得分:-3)

try to remove:

$this->setAttribute(PDO::ATTR_PERSISTENT, FALSE);