【发布时间】:2012-12-01 20:41:53
【问题描述】:
我有一个包含以下几行的 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 时出现相同的错误。
非常感谢任何帮助。
【问题讨论】: