Php ORA-00947值不足错误-不应该有任何错误吗?

Php ORA-00947值不足错误-不应该有任何错误吗?,php,arrays,forms,oracle,csv,Php,Arrays,Forms,Oracle,Csv,我正在创建一个PHP文件,允许用户通过HTML表单上传.csv文件。从那里,它将更新数据库。我已经成功地创建了将.csv发送到PHP的代码 不,问题不在于列为空。我测试了每一个,结果都很好 以下是我得到的错误: Warning: oci_execute(): ORA-00947: not enough values in <DIRECTORY> on line 43 下面是我的表单处理程序的源代码: <?php if(isset($_POST['numbers']

我正在创建一个PHP文件,允许用户通过HTML表单上传.csv文件。从那里,它将更新数据库。我已经成功地创建了将.csv发送到PHP的代码

不,问题不在于列为空。我测试了每一个,结果都很好

以下是我得到的错误:

Warning: oci_execute(): ORA-00947: not enough values in <DIRECTORY> on line 43 
下面是我的表单处理程序的源代码:

    <?php

if(isset($_POST['numbers']))
{

  $file = fopen($_FILES['uploaded']['tmp_name'], 'r');
  if($file) {
    while (($line = fgetcsv($file)) !== FALSE) {
    $csv_array[] = array_combine(range(1, count($line)), array_values($line));
    }
  }
}

?>
<br>
<?php
    require_once("mcl_Oci.php");

    $ArrayNumber = 1;   


    $GF=$csv_array["$ArrayNumber"]["1"];
    $CREW_NUMBER=$csv_array["$ArrayNumber"]["2"];
    $FOREMAN_NAME=$csv_array["$ArrayNumber"]["3"];
    $PHONE_NUMBER=$csv_array["$ArrayNumber"]["4"];
    $TYPE=$csv_array["$ArrayNumber"]["5"];
    $AVAILABLE=$csv_array["$ArrayNumber"]["6"];
    $CONTRACTOR=$csv_array["$ArrayNumber"]["7"];
    $SERVICE_CENTER=$csv_array["$ArrayNumber"]["8"];
    $COMMENTS = $csv_array["$ArrayNumber"]["9"];

    $objConnect = oci_connect("user", "pass", "(description=(address=(protocol=tcp)(host=host.com)(port=1533))(connect_data=(service_name=SID)))");
    $strSQL =  "INSERT INTO TABLE (GF, 
                   CREW_NUMBER, 
             FOREMAN_NAME, 
             PHONE_NUMBER, 
             TYPE, 
             AVAILABLE, 
             CONTRACTOR, 
             SERVICE_CENTER, 
             COMMENTS) VALUES ('$GF, $CREW_NUMBER, $FOREMAN_NAME, $PHONE_NUMBER, $TYPE, $AVAILABLE, $CONTRACTOR, $SERVICE_CENTER, $COMMENTS')";
    $objParse = oci_parse($objConnect, $strSQL);  
    $objExecute = oci_execute($objParse); //LINE 43//

?>
我认为您不需要表单中的源代码,但它在这里:

   <form name="file" enctype="multipart/form-data" action="update_handler2.php" method="post" >

       <u>GF:</u> <input type="file" name="uploaded"br>

       <input type="submit" value="Submit">

   </form>
更改此行:

VALUES ('$GF, $CREW_NUMBER, $FOREMAN_NAME, $PHONE_NUMBER, $TYPE, $AVAILABLE, $CONTRACTOR, $SERVICE_CENTER, $COMMENTS')
为此:

VALUES ('$GF', '$CREW_NUMBER', '$FOREMAN_NAME', '$PHONE_NUMBER', '$TYPE', '$AVAILABLE', '$CONTRACTOR', '$SERVICE_CENTER', '$COMMENTS')

我不熟悉PHP,但这看起来像是一个巨大的SQL注入漏洞。我想有一种方法可以用绑定变量来实现这一点。

我昨天就知道了答案,但没有办法告诉别人。我想起来,但我需要15次重复lol。谢谢jonearles!