0

我正在尝试在 innoDB 中创建序列替换(因为 auto_increment 的行为与 myisam 中的不同)。所以我创建了一个名为seq的存储函数。我可以按如下方式使用它:

INSERT INTO a_table(id) VALUES(seq('seq_a_table'));

我的基于 mysqli 的数据库库自动使用准备好的语句,所以我得到这个错误:

This command is not supported in the prepared statement protocol yet 

MySQL 版本:5.1.48(OSX 雪豹)。

更新

哇,我觉得自己很愚蠢……我对这个错误感到非常困惑,以至于我错过了一个简单的事实,即它不是由相关语句引发的。我正在使用事务并忘记了我的查询功能会自动将所有内容编译为语句,包括“START TRANSACTION”。所以对于未来的深夜编码员 - 不要试图在声明中开始交易:)

4

1 回答 1

-1

为什么不直接使用旧的 mysql 来处理这种情况。就像是:

$con = mysql_connect("192.168.x.x","host","pass");
if (!$con) die('Could not connect: ' . mysql_error());
mysql_select_db("yourdb", $con) or die("cannot select DB");

mysql_query( "INSERT INTO a_table(id) VALUES(seq('seq_a_table'))" );
于 2013-11-01T18:23:48.610 回答