在你的PHP脚本中你把字符型的变量OCIBindByName给了number型参数;

解决方案 »

  1.   

    使用oracle的时候,插入字段的值要和表字段定义的类型要一致。
    比如你的“转换率”表定义是数字,那插入的时候强制类型转换一下,象这样
    $path31 = (int)$_POST['changerate'.$i];//转换率
    或者
    $path31 = (float)$_POST['changerate'.$i];//转换率
    具体使用int还是float就的看你需要了
      

  2.   

    谢谢楼上 我已经 按照上面的修改了
    但是 新问题 出现了我在程序中 进行了 强制类型转换 似乎 不相符的问题解决了 
    但是 却出现了 这个问题:Warning: ociexecute(): OCIStmtExecute: ORA-01400: 无法将 NULL 插入 ("XTDETAIL"."XTDETAMSALL_DETAIL_2"."DCODE") ORA-06512: 在"XTDETAIL.INSERT_UPDATE", line 62 ORA-06512: 在line 1 in d:\myweb\a\cost\include\compute.php on line 333
    我在创建表中的各个字段的时候 除了关键字以外 都是不允许为空的,都是有默认值的 
    类似 上面这个错误的话 我把这个字段就设置成为了‘’,为默认值