0

我需要有关将我的 OCI 上传文件迁移到 postgresql 文件的帮助。我从 Youtube 尝试了多种方法。我是 pgsql 的新手,现在真的很紧张。需要帮忙。谢谢!。

这是代码:

$file = basename($_SERVER['PHP_SELF']); //get index.php
if ($file!='index.php') include_once "nologin.php";
   
   
$result = 0;
if(isset($_POST['submitBtn']) && $_FILES['myfile']['size'] > 0)
{
    $fileName = $_FILES['myfile']['name'];
    $tmpName  = $_FILES['myfile']['tmp_name'];
    $fileSize = $_FILES['myfile']['size'];
    $fileType = $_FILES['myfile']['type'];
    $no_kp_baru   = $_POST['no_kp_baru'];
    $latihan_id = $_POST['latihan_id'];
    $tkh_mula1 = $_POST['tkh_mula'];
    $masa_mula = $_POST['masa_mula'];
    
    list($d, $m, $y) = explode('/', $tkh_mula1);//'dd/mm/yyyy' format
    $mk=mktime(0, 0, 0, $m, $d, $y);
    $tkh_mula=strftime('%d-%b-%Y',$mk);

    if(!get_magic_quotes_gpc())
    {
        $fileName = addslashes($fileName);
    }

    include_once "../db_conn.php";
    
    $sql = "
    update log_latihan set
        PENGESAHAN = NULL,
        TKH_PENGESAHAN = NULL,
        ID_PENGESAH = NULL
    where
        NO_KP_BARU = :NO_KP_BARU
        and LATIHAN_ID = :LATIHAN_ID
        and TKH_MULA = :TKH_MULA
        and MASA_MULA = :MASA_MULA
        ";
    
    // Update using bind variables
    $parse = oci_parse($conn, $sql);
    oci_bind_by_name($parse, ":NO_KP_BARU", $no_kp_baru);
    oci_bind_by_name($parse, ":LATIHAN_ID", $latihan_id);
    oci_bind_by_name($parse, ":TKH_MULA", $tkh_mula);
    oci_bind_by_name($parse, ":MASA_MULA", $masa_mula);
    oci_execute($parse);
    //echo oci_num_rows($parse);
    if (oci_num_rows($parse))
    {
    
        $stmt = oci_parse($conn, "INSERT INTO log_latihan_sijil (no_kp_baru,latihan_id,tkh_mula,masa_mula,nama_fail,type,saiz_fail,tkh_upload,sijil) 
        VALUES(:NO_KP_BARU,:LATIHAN_ID,to_date(:TKH_MULA,'DD/MM/YYYY'),:MASA_MULA,:NAMA_FAIL,:TYPE,:SAIZ_FAIL,sysdate,EMPTY_BLOB()) RETURNING sijil INTO :FILE_CONTENT");
        
        $lob = oci_new_descriptor($conn, OCI_D_LOB);
        oci_bind_by_name($stmt, ':FILE_CONTENT', $lob, -1, OCI_B_BLOB);
        oci_bind_by_name($stmt, ":NO_KP_BARU", $no_kp_baru);
        oci_bind_by_name($stmt, ":LATIHAN_ID", $latihan_id);
        oci_bind_by_name($stmt, ":TKH_MULA", $tkh_mula1);
        oci_bind_by_name($stmt, ":MASA_MULA", $masa_mula);
        oci_bind_by_name($stmt, ":NAMA_FAIL", $fileName);
        oci_bind_by_name($stmt, ":TYPE", $fileType);
        oci_bind_by_name($stmt, ":SAIZ_FAIL", $fileSize);
        oci_execute($stmt, OCI_DEFAULT);
        //var_dump(oci_error($stmt));

        if ($lob->savefile($tmpName)) {
            oci_commit($conn);
            $result=1;
        }
        $lob->free();
        oci_free_statement($stmt);
    }
    oci_free_statement($parse);
}
4

0 回答 0