我有一个包含以下几行的 PHP 脚本:
require_once 'meekrodb.2.1.class.php';
DB::$user = 'usr';
DB::$password = 'pwd';
DB::$dbName = 'db';
DB::$encoding = 'utf8';
$results = DB::queryFirstField("
CALL getSequence('time_id', %i); // ***** Stored procedure call *****
", TENANT_ID);
DB::insert('timeentry', array(
'tenant_id' => TENANT_ID,
'time_id' => $results,
'timestart' => DB::sqleval("now()"),
'assig_id' => $assig_id
));
我收到以下错误:
查询:插入
timeentry
(tenant_id
,time_id
,timestart
,assig_id
) 值 (1, '42', now(), '1')错误:命令不同步;你现在不能运行这个命令
如果我用 SELECT 语句替换对存储过程的调用,一切正常。
$results = DB::queryFirstField("
SELECT 45; // ***** SELECT statement *****
");
DB::insert('timeentry', array(
'tenant_id' => TENANT_ID,
'time_id' => $results,
'timestart' => DB::sqleval("now()"),
'assig_id' => $assig_id
));
我还没有分析 MeekroDB 库 (http://www.meekro.com) 的内部结构。
我尝试将每个语句包装在事务中,但是在调用存储过程之后立即执行 COMMIT 时出现相同的错误。
任何帮助是极大的赞赏。