I ma using PHP's to communicate with an Oracle 11g Database. This code is intended for a user to upload an .xls or .csv file. If .xls, then convert to .csv. If .csv, continue. Afterward, it takes the csv and updates an oracle database. In the past, I have used sql injection without realizing the security disadvantages associated with it. So, I began to learn to use PDO. However, I am very new. The code I have designed (below) gets this error:
Fatal error: Call to a member function prepare() on a non-object in /opt/apache/servers/planninganddesign/htdocs/JointUse/update_handler.php on line 89
Line 89 is marked, below.
Code:
<?php
require_once('Classes/PHPExcel/IOFactory.php');
require_once("mcl_Oci.php");
?>
<br>
<?php
$filename = $_FILES['uploaded']['name'];
$file = $_FILES['uploaded']['tmp_name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if($ext='xls') {
$inputFileType = 'Excel5';
$inputFileName = $file;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcelReader = $objReader->load($inputFileName);
$loadedSheetNames = $objPHPExcelReader->getSheetNames();
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcelReader, 'CSV');
foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
$objWriter->setSheetIndex($sheetIndex);
$objWriter->save('abc.csv');}
$files = fopen('abc.csv', 'r');
if($files) {
while (($line = fgetcsv($files)) !== FALSE) {
$csv_array[] = array_combine(range(1, count($line)), array_values($line));
} echo 'Your .xls file was uploaded successfully. Have a nice day.';
}
elseif ($ext='csv'){
while (($line = fgetcsv($files)) !== FALSE) {
$csv_array[] = array_combine(range(1, count($line)), array_values($line));
} echo 'Your .csv file was uploaded successfully. Have a nice day.';
}
else {
echo "This is not an accepted file type. Please save as either '*.csv' or '*.xls' and re-upload.";
}
}
$ArrayNumber = 0;
while ($csv_array["$ArrayNumber"] != NULL) {
$ArrayNumber = $ArrayNumber + 1;
$RECEIVED=$csv_array["$ArrayNumber"]["1"];
$REGION=$csv_array["$ArrayNumber"]["2"];
$PERMIT=$csv_array["$ArrayNumber"]["3"];
$CUSTOMER=$csv_array["$ArrayNumber"]["4"];
$TO_BUSINESS=$csv_array["$ArrayNumber"]["5"];
$TO_PERMIT=$csv_array["$ArrayNumber"]["6"];
$POWER_ADDRESS=$csv_array["$ArrayNumber"]["7"];
$COMPANY=$csv_array["$ArrayNumber"]["8"];
$MAP_SECTION = $csv_array["$ArrayNumber"]["9"];
$POLES = $csv_array["$ArrayNumber"]["10"];
$FEE = $csv_array["$ArrayNumber"]["11"];
$INVOICE = $csv_array["$ArrayNumber"]["12"];
$DATE_LARRY = $csv_array["$ArrayNumber"]["13"];
$DAYS_LARRY = $csv_array["$ArrayNumber"]["14"];
$PI_PON = $csv_array["$ArrayNumber"]["15"];
$DATE_PD = $csv_array["$ArrayNumber"]["16"];
$DATE_LARRY_PD = $csv_array["$ArrayNumber"]["17"];
$RETURNED = $csv_array["$ArrayNumber"]["18"];
$DAYS_PD = $csv_array["$ArrayNumber"]["19"];
$ERRORS_PD = $csv_array["$ArrayNumber"]["20"];
$ERRORS_MULTIPLE = $csv_array["$ArrayNumber"]["21"];
$DATE_MAKEREADY_JU = $csv_array["$ArrayNumber"]["22"];
$DATE_MAKEREADY_COMPLETE = $csv_array["$ArrayNumber"]["23"];
$DAYS_MAKEREADY = $csv_array["$ArrayNumber"]["24"];
$DAYS_JU_PROCES = $csv_array["$ArrayNumber"]["25"];
$APPROVAL = $csv_array["$ArrayNumber"]["26"];
$DAYS_PERMIT_IN_JU = $csv_array["$ArrayNumber"]["27"];
$DATE_PLANNING = $csv_array["$ArrayNumber"]["28"];
$DAYS_OPEN = $csv_array["$ArrayNumber"]["29"];
$DATE_ROUTED = $csv_array["$ArrayNumber"]["30"];
$DAYS_TOTAL = $csv_array["$ArrayNumber"]["31"];
$COMMENTS = $csv_array["$ArrayNumber"]["32"];
$conn = oci_connect("user", "pass", "(description=(address=(protocol=tcp)(host=host)(port=1533))(connect_data=(service_name=name)))");
$sql = 'INSERT INTO INTOXDM.JOINT_USE (RECEIVED, REGION, PERMIT, CUSTOMER, TO_BUSINESS, TO_PERMIT, POWER_ADDRESS, COMPANY, MAPSECTION, POLES, FEE, INVOICE, DATE_LARRY, DAYS_LARRY, PI_PON, DATE_PD, DAYS_LARRY_PD, RETURNED, DAYS_PD, ERRORS_PD, ERRORS_MULTIPLE, DATE_MAKEREADY_JU, DATE_MAKEREADY_COMPLETE, DAYS_MAKEREADY, DAYS_JU_PROCES, APPROVAL, DAYS_PERMIT_IN_JU, DATE_PLANNING, DAYS_OPEN, DATE_ROUTED, DAYS_TOTAL, COMMENTS)
VALUES (:RECEIVED, :REGION, :PERMIT, :CUSTOMER, :TO_BUSIENSS, :TO_PERMIT, :POWER_ADDRESS, :COMPANY, :MAP_SECTION, :POLES, :FEE, :INVOICE, :DATE_LARRY, :DAYS_LARRY, :PI_PON, :DATE_PD, :DATE_LARRY_PD, :RETURNED, :DAYS_PD, :ERRORS_PD, :ERRORS_MULTIPLE,
:DATE_MAKEREADY_JU, :DATE_MAKEREADY_COMPLETE, :DAYS_MAKEREADY, :DAYS_JU_PROCES, :APPROVAL, :DAYS_PERMIT_IN_JU, :DATE_PLANNING, :DAYS_OPEN, :DATE_ROUTED, :DAYS_TOTAL, :COMMENTS)';
*****$stmt = $conn->prepare($sql);***** line 89
$sql->bindValue(':RECEIVED',$RECEIVED);
$sql->bindValue('REGION',$REGION);
$sql->bindValue(':PERMIT',$PERMIT);
$sql->bindValue(':TO_BUSINESS',$TO_BUSINESS);
$sql->bindValue(':TO_PERMIT',$TO_PERMIT);
$sql->bindValue(':POWER_ADDRESS',$POWER_ADDRESS);
$sql->bindValue(':MAP_SECTION',$MAP_SECTION);
$sql->bindValue(':POLES',$POLES);
$sql->bindValue(':FEE',$FEE);
$sql->bindValue(':INVOICE',$INVOCE);
$sql->bindValue(':$DATE_LARRY',$DATE_LARRY);
$sql->bindValue(':$DAYS_LARRY',$DAYS_LARRY);
$sql->bindValue(':$PI_PON',$PI_PON);
$sql->bindValue(':$DATE_PD',$DATE_PD);
$sql->bindValue(':$DATE_LARRY_PD',$DATE_LARRY_PD);
$sql->bindValue(':RETURNED',$RETURNED);
$sql->bindValue(':DAYS_PD',$DAYS_PD);
$sql->bindValue(':ERRORS_PD',$ERRORS_PD);
$sql->bindValue(':ERRORS_MULTIPLE',$ERRORS_MULTIPLE);
$sql->bindValue(':DATE_MAKEREADY_JU',$DATE_MAKEREADY_JU);
$sql->bindValue(':DATE_MAKEREADY_COMPLETE',$DATE_MAKEREADY_COMPLETE);
$sql->bindValue(':DAYS_MAKEREADY',$DAYS_MAKEREADY);
$sql->bindValue(':DAYS_JU_PROCES',$DAYS_JU_PROCES);
$sql->bindValue(':DATE_PERMIT_IN_JU',$DATE_PERMIT_IN_JU);
$sql->bindValue(':DATE_PLANNING',$DATE_PLANNING);
$sql->bindValue(':DAYS_OPEN',$DAYS_OPEN);
$sql->bindValue(':DATE_ROUTED',$DATE_ROUTED);
$sql->bindValue(':DAYS_TOTAL',$DAYS_TOTAL);
$sql->bindValue(':COMMENTS',$COMMENTS);
$stmt->execute();
$exec = execute();
}
?>
What could cause this issue, and is there an easy way around it? TIA!