|
|
|
ขอวิธี แก้ ORA-01830: ภาพรูปแบบวันที่ถึงจุดสิ้นสุดก่อนการแปลงค่าสตริงอินพุตทั้งหมด |
|
|
|
|
|
|
|
ขอวิธี แก้ ORA-01830: ภาพรูปแบบวันที่ถึงจุดสิ้นสุดก่อนการแปลงค่าสตริงอินพุตทั้งหมด คือห้ามเปลี่ยน ชนิด ตัวเก็บ ใน ฐาน CREATED_DATE ชนิดเป็น date
ผม select sysdate เพื่อเอา datetime เก็บเข้าไปใส่ ใน date
Code (PHP)
$selectda ="SELECT to_char(sysdate, 'dd/mm/yyyy hh24:mi:ss') AS DATET from dual ";
$resultda = oci_parse($objConnect,$selectda) or die(oci_error());
oci_execute ($resultda);
while($showda = oci_fetch_array($resultda)){ //ใช้ในการคืนค่าข้อมูลในฐานข้อมูลที่อยู่ในลักษณะเป็นแถวหรือว่าเป็น record
$datet = $showda["DATET"];
}
$selectd4 ="SELECT to_char(sysdate) AS DATEW from dual ";
$resultd4 = oci_parse($objConnect,$selectd4) or die(oci_error());
oci_execute ($resultd4);
while($show4 = oci_fetch_array($resultd4)){ //ใช้ในการคืนค่าข้อมูลในฐานข้อมูลที่อยู่ในลักษณะเป็นแถวหรือว่าเป็น record
$datetscan = $show4["DATEW"];
}
msg($datet);
$strSQL = "INSERT INTO SFCSYS.SFC_LS_SCAN_HEADER ";
$strSQL .="(COMPANY_CODE,HEADER_ID,SCAN_DATE,SCAN_NO,EMP_ID,SUB_SECT_CODE,
GROUP_CODE,CREATED_DATE,CREATED_BY) ";
$strSQL .="VALUES ";
$strSQL .="('".$company."','$nextheader','".$datetscan."' ";
$strSQL .=",'".$NUMBERINV."','".$EID."','".$Department."' ";
$strSQL .=",'".$GroupE."','$datet','".$createbyn."')";
$objParse = oci_parse($objConnect, $strSQL);
$REW=oci_execute ($objParse,OCI_DEFAULT);
if($REW){
oci_commit($objConnect); //*** Commit Transaction ***//
}
else{
if (!defined($objParse)) {
$err =oci_error($objParse);
var_dump($err);
}
}
Tag : PHP, Oracle, JavaScript
|
ประวัติการแก้ไข 2019-10-30 15:53:04
|
|
|
|
|
Date :
2019-10-30 15:51:31 |
By :
zoneteendome |
View :
953 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2019-10-30 15:51:54 |
By :
zoneteendome |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
query ไม่ผ่านครับ ลอง echo, print คำสั่งออกมาดูก่อน
comment บรรทัดที่ 25 ไว้ก่อน
Code (PHP)
$strSQL = "INSERT INTO SFCSYS.SFC_LS_SCAN_HEADER ";
$strSQL .="(COMPANY_CODE,HEADER_ID,SCAN_DATE,SCAN_NO,EMP_ID,SUB_SECT_CODE,
GROUP_CODE,CREATED_DATE,CREATED_BY) ";
$strSQL .="VALUES ";
$strSQL .="('".$company."','$nextheader','".$datetscan."' ";
$strSQL .=",'".$NUMBERINV."','".$EID."','".$Department."' ";
$strSQL .=",'".$GroupE."','$datet','".$createbyn."')";
die($strSQL);
//$objParse = oci_parse($objConnect, $strSQL);
//$REW=oci_execute ($objParse,OCI_DEFAULT);
เอาคำสั่งที่ได้ไป query ในฐานข้อมูล
|
|
|
|
|
Date :
2019-10-30 16:25:36 |
By :
sleeplesscat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อย่าพยายามต่อสตริงเองเลยครับ ใช้ ตัวแปรช่วยดีกว่าไหม
https://www.php.net/manual/en/function.oci-parse.php
แถมมันยังช่วยป้องกัน sql injection ให้เราอีกด้วย
Code (PHP)
$strSQL = 'INSERT INTO SFCSYS.SFC_LS_SCAN_HEADER
(COMPANY_CODE,HEADER_ID,SCAN_DATE,SCAN_NO,EMP_ID,SUB_SECT_CODE,
GROUP_CODE,CREATED_DATE,CREATED_BY)
VALUES ( :COMPANY_CODE, :HEADER_ID, :SCAN_DATE, :SCAN_NO, :EMP_ID, :SUB_SECT_CODE,
:GROUP_CODE, :CREATED_DATE, :CREATED_BY)';
$stmt = oci_parse($conx, $strSQL);
oci_bind_by_name($stmt, ':COMPANY_CODE', $company_code);
oci_bind_by_name($stmt, ':HEADER_ID', $header_id);
...
...
รายละเอียดอ่านเอาจากลิงค์ที่ให้ข้างบน แม้มันจะยาวหน่อย แต่มันปลอดภัยแน่นอน
|
|
|
|
|
Date :
2019-10-30 17:01:48 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55555ยังไม่ได้เลยครับ
Code (PHP)
$strSQL = 'INSERT INTO SFCSYS.SFC_LS_SCAN_HEADER
(COMPANY_CODE,HEADER_ID,SCAN_DATE,SCAN_NO,EMP_ID,SUB_SECT_CODE,
GROUP_CODE,CREATED_DATE,CREATED_BY)
VALUES ( :COMPANY_CODE, :HEADER_ID, :SCAN_DATE, :SCAN_NO, :EMP_ID, :SUB_SECT_CODE,
:GROUP_CODE, :CREATED_DATE, :CREATED_BY)';
$stmt = oci_parse($objConnect, $strSQL);
oci_bind_by_name($stmt, ':COMPANY_CODE', $company);
oci_bind_by_name($stmt, ':HEADER_ID', $nextheader);
oci_bind_by_name($stmt, ':SCAN_DATE', $datetscan);
oci_bind_by_name($stmt, ':SCAN_NO', $NUMBERINV);
oci_bind_by_name($stmt, ':EMP_ID', $EID);
oci_bind_by_name($stmt, ':SUB_SECT_CODE', $Department);
oci_bind_by_name($stmt, ':GROUP_CODE', $GroupE);
oci_bind_by_name($stmt, ':CREATED_DATE', $datet);
oci_bind_by_name($stmt, ':CREATED_BY', $createbyn);
$REW=oci_execute ($stmt,OCI_DEFAULT);
if($REW){
oci_commit($objConnect); //*** Commit Transaction ***//
}
else{
if (!defined($objParse)) {
$err =oci_error($objParse);
var_dump($err);
}
}
|
|
|
|
|
Date :
2019-10-30 17:16:06 |
By :
zoneteendome |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ละครับขอบคุณมากครับ
Code (PHP)
$strSQL = "INSERT INTO SFCSYS.SFC_LS_SCAN_HEADER ";
$strSQL .="(COMPANY_CODE,HEADER_ID,SCAN_DATE,SCAN_NO,EMP_ID,SUB_SECT_CODE,
GROUP_CODE,CREATED_DATE,CREATED_BY) ";
$strSQL .="VALUES ";
$strSQL .="('".$company."','$nextheader','".$datetscan."' ";
$strSQL .=",'".$NUMBERINV."','".$EID."','".$Department."' ";
$strSQL .=",'".$GroupE."',TO_DATE('".$datet."','dd/mm/yyyy HH24:MI:SS'),'".$createbyn."')";
|
ประวัติการแก้ไข 2019-10-31 09:42:00
|
|
|
|
Date :
2019-10-31 09:41:18 |
By :
zoneteendome |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|