5

浮動小数点数を OCI ステートメントにバインドする必要があります。

私がやっていること:

$price = 0.1
oci_bind_by_name($resource, 'price', $price);

私のOracle DBでは、「価格」はストアドプロシージャの引数であり、そのタイプはNUMERICです。

ステートメントを実行した後、次のエラーが発生します。

メッセージ: oci_execute() [function.oci-execute]: ORA-06502: PL/SQL: 数値または値のエラー: 文字から数値への変換エラー ORA-06512: 行 1

$price が整数の場合、すべて正常に動作します。PHP ドキュメントhttp://lv.php.net/manual/en/function.oci-bind-by-name.phpでは、5 番目のパラメーター (int $type = SQLT_CHR) の float の特別な型が見つかりませんでした。

回答が見つかりました: OS の小数点記号を "," から "." に変更しました。そして今、すべてが正常に動作します

4

2 に答える 2

-1

試してください: oci_bind_by_name($resource, 'price', $price, -1, SQLT_NUM);SQLT_NUM がドキュメントにないだけです。

于 2015-06-24T12:48:49.513 に答える