Php 调用存储过程时内存不足

Php 调用存储过程时内存不足,php,pdo,odbc,Php,Pdo,Odbc,我很难从将数据写入数据库的存储过程中检索数据。连接的建立是正确的,因为其他过程(如“call rec.getProducts()”)运行良好,这些过程只返回数据而不进行写入。每当我执行以下代码时,都会出现一个错误: Out of memory (allocated 262144) (tried to allocate -3 bytes) 我的php代码: $conn=新的PDO(…); $sql=“{call rec.saveProduct(?,,,,,,,,?)}”; $rs=$conn->p

我很难从将数据写入数据库的存储过程中检索数据。连接的建立是正确的,因为其他过程(如“call rec.getProducts()”)运行良好,这些过程只返回数据而不进行写入。每当我执行以下代码时,都会出现一个错误:

Out of memory (allocated 262144) (tried to allocate -3 bytes) 我的php代码:

$conn=新的PDO(…);
$sql=“{call rec.saveProduct(?,,,,,,,,?)}”;
$rs=$conn->prepare($sql);
$rs->bindParam(1,$msg,PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT,300);
$rs->bindParam(2,$state,PDO::PARAM|u STR | PDO::PARAM_INPUT_OUTPUT,5);
$rs->bindParam(3,$idOrder,PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT,10);
$rs->bindParam(4,$name,PDO::PARAM_STR);
$rs->bindParam(5,$idPayer,PDO::PARAM_INT);
$rs->bindParam(6$product,PDO::PARAM_STR);
$rs->execute();

任何帮助都将不胜感激。

当我编写存储过程时,我只希望传递输入参数:

IN @NAME char(20),
IN @IDPAYER dec(6, 0),                   
IN @PRODUCT char(10),
然后在内部,我将输出作为结果集返回:

SELECT @MSG AS [MSG], @STATE AS [STATE], @IDORDER AS [IDORDER]
然后在PHP中:

$sql = "{call rec.saveProduct(?,?,?)}";
$rs = $conn->prepare($sql);
$rs->bindParam(1, $name, PDO::PARAM_STR);
$rs->bindParam(2, $idPayer, PDO::PARAM_INT);
$rs->bindParam(3, $product, PDO::PARAM_STR);
$rs->execute();
$row = $rs->fetch();

$msg = $row['MSG'];
$state = $row['STATE'];
$idOrder = $row['IDORDER'];

编写存储过程时,我只希望传递输入参数:

IN @NAME char(20),
IN @IDPAYER dec(6, 0),                   
IN @PRODUCT char(10),
然后在内部,我将输出作为结果集返回:

SELECT @MSG AS [MSG], @STATE AS [STATE], @IDORDER AS [IDORDER]
然后在PHP中:

$sql = "{call rec.saveProduct(?,?,?)}";
$rs = $conn->prepare($sql);
$rs->bindParam(1, $name, PDO::PARAM_STR);
$rs->bindParam(2, $idPayer, PDO::PARAM_INT);
$rs->bindParam(3, $product, PDO::PARAM_STR);
$rs->execute();
$row = $rs->fetch();

$msg = $row['MSG'];
$state = $row['STATE'];
$idOrder = $row['IDORDER'];