亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Webmin/Virtualmin - 處理大文件 - 內部服務器錯誤

Webmin/Virtualmin - 處理大文件 - 內部服務器錯誤

PHP
aluckdog 2023-04-15 16:36:37
我正在使用 PHP 腳本將數組的唯一值插入數據庫。這是腳本ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);if (isset($_POST['submit'])) {    $df = $_POST['df'];    $arr = array();    $file = fopen('files/'.$df.'.csv', 'r');    while (($line = fgetcsv($file)) !== false) {        $arr[] = $line[2];    }    $arruniq = array_unique($arr);    fclose($file);    $arr_count = count($arr);    $time = strtotime(date_default_timezone_get());    $ts = date("Y-m-d H:i:s", $time);    $mysqli = new mysqli("localhost", "root", "pass", "tab");    if ($mysqli === false) {        die("ERROR: DB could not connect. ");    }    $sqlins = "insert into tab (created_time, uniq_id) values (?, ?);";    for ($i = 0; $i < $arr_count; $i++) {        if ($stmt = $mysqli->prepare($sqlins)) {            $stmt->bind_param("ss", $ts, $arruniq[$i]);            $stmt->execute();        } else {            echo "ERROR: Could not prepare query";        }    }    $mysqli->close();}該腳本正在讀取 CSV 文件、唯一值并插入到數據庫中。這就是問題所在,如果文件較小,腳本可以正常工作,但如果我使用較大的文件,則會收到此“500 內部服務器錯誤”。服務器 PHP 日志和 Apache 日志中沒有顯示或記錄錯誤。ini_set('memory_limit','2048M');我什至通過使用和標頭增加了腳本的執行時間和腳本的內存限制max_execution_time,這也沒有用。
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

這是腳本執行時間的問題。由于我使用的是 webmin/virtualmin max_execution_time標頭不起作用。所以我在 virtualmin 服務器中更改了它

virtualmin server -> server configuration -> website options -> Maximum PHP script run time

現在問題已解決,但執行腳本需要更長的時間。


查看完整回答
反對 回復 2023-04-15
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

如果您使用準備好的語句和事務,它應該會更快。


$mysqli->begin_transaction();

$stmt = $mysqli->prepare("INSERT INTO tab (created_time, uniq_id) values (?, ?);");

foreach($arruniq as $item) {

    $stmt->bind_param("ss", $ts, $item);

    $stmt->execute();

}

$mysqli->commit();

正確使用準備好的語句會給您帶來輕微的性能提升,因為服務器不需要每次都解析 SQL,并且事務會為您節省一些時間,因為它不會在commit每一行之后調用。


查看完整回答
反對 回復 2023-04-15
  • 2 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號