【发布时间】:2020-07-29 07:07:32
【问题描述】:
当我点击插入按钮时,它没有将数据插入到我的主数据库中,也没有显示任何错误,请告诉我错误是什么,以便我解决。
<?php
require_once "header.php";
require_once "config.php";
require('SpreadsheetReader/php-excel-reader/excel_reader2.php');
require('SpreadsheetReader/SpreadsheetReader.php');
if (isset($_POST["import"]))
{
$allowedFileType = ['application/vnd.ms-excel','text/xls','text/xlsx','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
if(in_array($_FILES["file"]["type"],$allowedFileType))
{
$targetPath = 'uploads/'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $targetPath);
$Reader = new SpreadsheetReader($targetPath);
$name = 0;
$company = 0;
$package = 0;
$status = 0;
$uploaddate = date("Y/m/d hh:mm:ss");
$sheetCount = count($Reader->Sheets());
try
{
for($i=0; $i<$sheetCount; $i++)
{
$Reader->ChangeSheet(1);
foreach($Reader as $Row)
{
if(isset($Row[0])) {$name = mysqli_real_escape_string($link,$Row[0]);}
if(isset($Row[1])) {
$input = $Row[1];
$output = substr($input, -10);
$mobile=intval($output);
}
if(isset($Row[2])) {$company=mysqli_real_escape_string($link,$Row[2]);}
if(isset($Row[3])) {$package=mysqli_real_escape_string($link,$Row[3]);}
if(isset($Row[4])) {$status=mysqli_real_escape_string($link,$Row[4]);}
if (!empty($mobile))
{
$query= "INSERT INTO MAINDATABASE (NAME, MOBILE, COMPANY, PACKAGE, STATUS, UPLOAD_DATE)
VALUES ('".$name."','".$mobile."','".$company."','".$package."','".$status."','".$uploaddate."')";
$result = mysqli_query($link, $query);
if (!empty($result)) {
$type = "success";
$message = "Excel Data Successfully Imported into Main Database";
}
else{
$type = "error";
$message = "Problem in Importing Excel Data";
}
}
}
}
}
catch (Exception $E)
{
echo $E -> getMessage();
}
//DELETE DUPLICATES FROM MAINDATABASE BECAUSE ITS ALREADY ENQUIRY
mysqli_query($link,"DELETE a.* FROM MAINDATABASE a INNER JOIN ENQUIRY b ON a.MOBILE = b.CLINT_MOBILE");
//DELETE DUPLICATES RECORD BECAUSE ITS ALREADY A USER
mysqli_query($link,"DELETE a.* FROM MAINDATABASE a INNER JOIN USERS b ON a.MOBILE = b.MOBILE");
//DELETE DUPLICATES RECORDS FROM SAME TABLE
mysqli_query($link,"DELETE t1 FROM MAINDATABASE t1, MAINDATABASE t2 WHERE t1.id > t2.id AND t1.MOBILE = t2.MOBILE");
//ARRANGE PRIMARY KEY ID IN SEQUENCE
mysqli_query($link,"ALTER TABLE MAINDATABASE DROP ID");
mysqli_query($link,"ALTER TABLE MAINDATABASE AUTO_INCREMENT = 1");
mysqli_query($link,"ALTER TABLE MAINDATABASE ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
}
else
{
$type = "error";
$message = "Error.. Please select Only Excel File format";
}
mysqli_close($link);
}
?>
我认为这个问题出在我的 php 阅读器上,但我无法解决。我也想上传案例文件,但没有找到正确的方法。只要让我知道卡在哪里,我会解决我的问题。
【问题讨论】:
-
你尝试回显 intval($output) 吗?
-
你应该暂时放置一些 echo / print_r / var_dump 来找出那里没有工作
-
了解 sql 注入以及准备和绑定查询的重要性
-
@KunalRaut 检查效果很好。应该没问题。