Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 与PDO相关的数据库错误_Php_Mysql_Linux_Pdo - Fatal编程技术网

Php 与PDO相关的数据库错误

Php 与PDO相关的数据库错误,php,mysql,linux,pdo,Php,Mysql,Linux,Pdo,更改服务器配置后。更新了MYSQL和PHP。我遇到了如下不同的SQL错误: SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在“WHERE id”附近使用正确的语法= 第1行的“759” SQLSTATE[HY000]:一般错误:2014无法在 其他未缓冲查询处于活动状态。考虑使用 PDO语句::fetchAll()。或者,如果您的代码只是 要在mysql上运行,可以通过设置 PDO::MYSQL\u ATT

更改服务器配置后。更新了MYSQL和PHP。我遇到了如下不同的SQL错误:

SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在“WHERE id”附近使用正确的语法= 第1行的“759”

SQLSTATE[HY000]:一般错误:2014无法在 其他未缓冲查询处于活动状态。考虑使用 PDO语句::fetchAll()。或者,如果您的代码只是 要在mysql上运行,可以通过设置 PDO::MYSQL\u ATTR\u USE\u BUFFERED\u查询属性

我添加了
$this->dbo->setAttribute(PDO::MYSQL\u ATTR\u USE\u BUFFERED\u QUERY,true),这会导致代码错误

我没有更改代码中的任何内容,所以不会是synthax错误

更新: 函数loadAssoc($values=false){

我得到一个错误PHP致命错误:在使用execute的行上调用成员函数execute()


在我的cpanel中,它说:linux、PHP5.3.21、mysql 5.5.28(刚刚升级到这个版本)认为可以解决这个问题

正如我前面所说的,在我的服务器更新之前,一切都正常:S

,来自:

如果PDOStatement上的此属性设置为TRUE,则MySQL驱动程序将使用MySQL API的缓冲版本。如果您正在编写可移植代码,则应改用PDOStatement::fetchAll()

无论出于何种原因,您更新的PDO扩展似乎是针对不支持缓冲查询的mysql api链接的

现有代码正在使用缓冲查询,因此将失败。不更改代码本身的唯一解决方案是:

  • 安装支持缓冲查询的mysql客户端库
  • 将PDO链接到此库


为了进一步帮助您,我需要有关您正在使用的操作系统以及MySQL、PDO、PHP的版本的其他信息…

请显示完整查询的示例。尝试使用PDO启用缓冲查询时显示“代码错误”。第一个错误与PDO无关-您编写了语法不正确的查询。函数loadAssoc($values=false){//Execute语句($values)?$this->statement->Execute($values):$this->statement->Execute();//返回关联数组Return$this->statement->fetch(PDO::fetch_ASSOC)}我得到错误PHP致命错误:调用成员函数Execute()在使用execute的线路上。我想可能是PDO链接到了错误的mysql api(从这里唯一的答案来看)。我将对此进行调查,并在我的cpanel中返回我的mysql、php和PDO版本,上面写着:linux、PHP5.3.21、mysql 5.5.28(刚刚升级到这个版本)我想这会解决问题。我会问一个关于cpanel支持的问题。(如果你还没有)我也会尝试。我联系了我的主机,他们也一直在做这件事。我也会尝试cpanel!谢谢你的帮助。如果你能找到解决方案,那就太好了。祝你好运!
            // Execute statement
            ($values) ? $this->statement->execute($values) : $this->statement->execute();

            // Return associative array
            return $this->statement->fetch(PDO::FETCH_ASSOC);
        }