2017-04-17 13 views
0

私はPHP 7を使用していて、plsqlプロシージャを呼び出してpostパラメータを渡しています。次のコードは、プロシージャに0を渡します。関数の戻り値を別の関数に渡すPHP 7

@oci_bind_by_name($stmt, ":py", trim($_POST["py"]), -1); 

しかし、以下のようなコードを変更すると、パラメータの値がpostに渡されます。

$trimmed = trim($_POST["py"]); 
@oci_bind_by_name($stmt, ":py", $trimmed, -1); 

誰かが理由を説明できますか?

+0

ポスト値によってそれを渡している間、第三のパラメータは、参照として渡されることを期待します2番目のコードのテストケースで0が変更されました – Hossam

+0

プロシージャを呼び出す前に 'var_dump'を使用しましたが、0ではありません。 – Hikmat

+0

ラグの下のエラーをスイープするのに' @ 'を使用しないでください。あなたがそれを使用しなかった場合、あなたはその問題を見たでしょう。 – apokryfos

答えて

3

docsに従って:あなたはoci_bind_by_nameを見ることができるよう

bool oci_bind_by_name (resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]]) 
//                ^^^^^^^^^^^^^^^^ 

ことはあなたの最初のケースでは、あなたは間違いなく価値

+0

@Hikmat https://pecl.php.net/package-changelog.php?package=oci8 https://bugs.php.net/bug.php?id=71148これらのリンクが役立つと思います – hassan

関連する問題