1

異なるSQLステートメントで値をバインドするために1つのPHP変数を複数回使用することによる制限があるかどうか疑問に思っていました. 以下のコードでは、ELSE でエラーが発生します。IF は正常に動作します。

$numPresup = $_POST['numPresupuesto'];
$numHist = $_POST['numHistorial'];
$query2 = $con -> prepare("SELECT * FROM tbl_claves WHERE NumPresup = :numPresup AND Historia = :numHist");
$query2-> execute(array(':numHist'=> $numHist,':numPresup' => $numPresup));
$row2=$query2->fetch(PDO::FETCH_ASSOC);
if($row2==0) {
$_SESSION['error1']= "Datos no encontrados, por favor introduzca de nuevo sus detalles";
header( 'Location: http://www.abcde.php');
}
else 
{
$query = $con -> prepare("SELECT * FROM tbl_descuentos WHERE NumPresup = :numPresupuesto");
$query-> bindValue(':numPresupuesto',$numPresup);
$query-> execute();
$row=$query->fetch(PDO::FETCH_ASSOC);
}

私が得るエラーメッセージは次のとおりです。Fatal error: Call to a member function bindValue() on a non-object

ありがとう

4

1 に答える 1

0

私が見つけた解決策:

else 
{
$query2->closeCursor();
...

接続を解放する必要がありました。 http://www.php.net/manual/en/pdostatement.closecursor.php

于 2013-05-31T18:59:28.990 に答える