MySQL 错误:准备好的语句协议尚不支持此命令

Posted

技术标签:

【中文标题】MySQL 错误:准备好的语句协议尚不支持此命令【英文标题】:MySQL Error: This command is not supported in the prepared statement protocol yet 【发布时间】:2012-09-16 04:15:14 【问题描述】:

当我在 mysql 查询的开头和结尾使用 START TRANSACTIONCOMMIT 时出现以下错误。

SQLSTATE[HY000]: General error: 2030 This command is not supported in the prepared statement protocol yet

SQL: START TRANSACTION

Bindings: array (
)

在 Larvel,我做到了:

DB::query('START TRANSACTION');

我正在使用 php 框架 Laravel,它使用 PDO 来访问 MySQL。我该怎么办?

【问题讨论】:

需要 PHP 和 MySQL 的版本号 我运行的是旧版本的mysql,谢谢!升级中.. 请将问题标记为已解决并使用解决方案编辑您的帖子! @mblaettermann 您没有将帖子标记为已解决。您选择最佳答案。在这种情况下,没有提供解决方案的答案,因此 OP 应该提供一个 - 不要编辑帖子 我选择的下面的帖子解决了这个问题,同时升级了 MySQL。为什么投反对票? :( 【参考方案1】:

Laravel 已经支持事务查询。

DB::transaction(function ()

    // query goes here.
    DB::table('foo')->insert(array('foo' => 'bar'));
);

【讨论】:

请同时回答问题。

以上是关于MySQL 错误:准备好的语句协议尚不支持此命令的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询

编译语句时出错:FAILED:SemanticException [错误 10128]:第 4:7 行尚不支持 UDAF 位置

使用 PDO 准备好的语句 MySQL 错误

使用 mysqli 和准备好的语句时命令不同步 [重复]

简单的准备语句中的MySQL语法错误?

运行准备好的语句 (MySQL/PHP)