mysql — не удается найти файл ошибка переполнения стека

Я крайний новичок в этом, поэтому, пожалуйста, потерпите меня.
У меня есть небольшой проект, в котором я пытаюсь загрузить CSV-файл и вставить его в MySQL,

Я прочитал все подобные посты здесь и попробовал то, что я понял, но я все еще получаю ошибки: D

    <?php

$databasehost = "localhost";
$databasename = "hutchreport";
$databasetable = "intervalreport";
$databaseusername ="root";
$databasepassword = "";

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

$fname = $_FILES['csv_file']['name'];
$chk_ext = explode(".",$fname);

if(strtolower($chk_ext[1]) == "csv")
{

$filename = $_FILES['csv_file']['tmp_name'];

$con = @mysql_connect($databasehost,$databaseusername,
$databasepassword) or die(mysql_error());

@mysql_select_db($databasename) or die(mysql_error());

$sql = "LOAD DATA LOCAL INFILE '$fname'
INTO TABLE intervalreport
FIELDS TERMINATED BY ','
LINES TERMINATED BY ',,,\\r\\n'
IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate,
intervendtime, loginname, loginnumber,
callsoffered, callsanswered, abandonedcalls,
waittime, staffedtime, auxtime, meeting,
coaching, logintime, inboundtalktime,
avginboundtalktime, inboundacwtime,
avginboundacwtime, inboundhandlingtime,
avginboundhandlingtime, heldcalls,
inboundholdtime, avginboundholdtime,
notreadytime, avgnotreadytime)";

mysql_query($sql) or die(mysql_error());fclose($handle);
echo "Successfully Imported";
}
else
{
echo "Invalid File";
}
}

?>

<form action='<?php echo $_SERVER["PHP_SELF"];?>' enctype="multipart/form-data" method='post'>
<input type='file' name='csv_file' size='20'>
<input type='submit' name='SUBMIT' value='SUBMIT'>
</form>
</body>
</html>

Я получаю «Не могу найти файл Book1.csv» с этим кодом. Пожалуйста помоги!

РЕДАКТИРОВАТЬ: наконец-то получил его на работу. Вот рабочий код:

<html>
<head>
<title>
test
</title>
</head>
<body>

<?php
$databasehost = "localhost";
$databasename = "hutchreport";
$databasetable = "intervalreport";
$databaseusername="root";
$databasepassword = "";
$fieldseparator = ",";
$lineseparator = "\n";
//$csvfile = "csv/Book1.csv";

if(isset($_POST['SUBMIT']))
{
$csvfile = $_FILES['csv_file']['tmp_name'];
move_uploaded_file($csvfile, $csvfile);
if(!file_exists($csvfile)) {
die("File not found. Make sure you specified the correct path.");
}

try {
$pdo = new PDO("mysql:host=$databasehost;dbname=$databasename",
$databaseusername, $databasepassword,
array(
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
} catch (PDOException $e) {
die("database connection failed: ".$e->getMessage());
}

$affectedRows = $pdo->exec("LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."LINES TERMINATED BY ".$pdo->quote($lineseparator)."IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate, intervendtime, loginname, loginnumber, callsoffered, callsanswered, abandonedcalls, waittime, staffedtime, auxtime, meeting, coaching, logintime, inboundtalktime, avginboundtalktime, inboundacwtime, avginboundacwtime, inboundhandlingtime, avginboundhandlingtime, heldcalls, inboundholdtime, avginboundholdtime, notreadytime, avgnotreadytime)");

echo "Loaded a total of $affectedRows records from this csv file.\n";
} else { echo "invalid file";}

?>

<form action="" enctype="multipart/form-data" method='post'>
<input type='file' name='csv_file' size='20'>
<input type='submit' name='SUBMIT' value='SUBMIT'>
</form>
</body>
</html>

-3

Решение

было бы намного лучше, если бы вы разместили изображение, связанное с вашей ошибкой! И поскольку сам php устарел, функции mysql лучше использовать либо PDO, либо mysqli!
я исправил некоторую часть кодов! пожалуйста, проверьте и дайте мне знать, помогло это или нет.

            <?php

$databasehost = "localhost";
$databasename = "hutchreport";
$databasetable = "intervalreport";
$databaseusername ="root";
$databasepassword = "";

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

$fname = $_FILES['csv_file']['name'];
$chk_ext = explode(".",$fname);

if(strtolower($chk_ext[1]) == "csv")
{

$filename = $_FILES['csv_file']['tmp_name'];

$con = new mysqli($databasehost,$databaseusername,$databasepassword, databasename);
move_uploaded_file($filename, $filename);
$sql = "LOAD DATA LOCAL INFILE {$filename}
INTO TABLE intervalreport
FIELDS TERMINATED BY ','
LINES TERMINATED BY ',,,\\r\\n'
IGNORE 1 LINES (intervstartdate, intervstarttime, intervenddate,
intervendtime, loginname, loginnumber,
callsoffered, callsanswered, abandonedcalls,
waittime, staffedtime, auxtime, meeting,
coaching, logintime, inboundtalktime,
avginboundtalktime, inboundacwtime,
avginboundacwtime, inboundhandlingtime,
avginboundhandlingtime, heldcalls,
inboundholdtime, avginboundholdtime,
notreadytime, avgnotreadytime)";

$con->query($sql);fclose($handle);
unlink($filename);
echo "Successfully Imported";
}
else
{
echo "Invalid File";
}
}

?>

<form action="" enctype="multipart/form-data" method='post'>
<input type='file' name='csv_file' size='20'>
<input type='submit' name='SUBMIT' value='SUBMIT'>
</form>
</body>
</html>

я загрузил файл и сохранил его в родительском каталоге! и затем прочитайте файл, и когда вещь импорта закончилась, я удалил файл!

надеюсь, что это работает

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]