国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Bagaimana untuk menyelesaikan masalah tidak dapat mengemas kini "Lajur Tarikh": Bagaimana untuk memuat naik fail CSV dengan betul semasa mengemas kini jadual pangkalan data MySQL
P粉529581199
P粉529581199 2023-08-28 13:46:51
0
1
646
<p>Masalah utama dalam kod saya ialah saya tidak boleh mengemas kini "tarikh" daripada fail csv ke dalam jadual pangkalan data mysql menggunakan php. Baris kod $date = mysqli_real_escape_string($connect, $data[1]); Saya sedang mencari sebarang pertanyaan alternatif untuk baris kod tertentu ini. </p> <p>Ini ialah fail csv: https://drive.google.com/file/d/1EdMKo-XH7VOXS5HqUh8-m0uWfomcYL5T/view?usp=sharing</p> <p>Ini ialah kod lengkap: </p> <pre class="brush:php;toolbar:false;"><?php //index.php $connect = mysqli_connect("localhost","root","1234","ml_database"); $mesej =''; if(isset($_POST["muat naik"))){ if($_FILES['product_file']['name']){ $nama fail = meletup(".”,$ _FAIL ['fail_produk'] ['nama']); if(end($ nama fail)==“csv”){ $handle = fopen($ _FILES ['product_file'] ['tmp_name'],“r”); manakala($ data = fgetcsv($ pemegang)){ $data_id = mysqli_real_escape_string($ connect,$ data [0]); $tarikh = mysqli_real_escape_string($ connect,$ data [1]); //我的問題 $births = mysqli_real_escape_string($ connect,$ data [2]); $query = “KEMASKINI my_table SET tarikh ='$ tarikh', kelahiran ='$ kelahiran', WHERE data_id ='$ data_id'”; mysqli_query($ connect,$ query); } fclose($ pemegang); pengepala(“l(fā)okasi:index.php?kemas kini = 1”); } lain { $message ='<label class="text-danger">Sila pilih hanya fail CSV</label>'; } } lain { $message ='<label class="text-danger">Sila pilih fail</label>'; } } if(isset($_GET["kemas kini"])){ $message ='<label class="text-success">Kemas kini produk selesai</label>'; } $query = "PILIH * DARI my_table"; $result = mysqli_query($connect, $query); ?> <!DOCTYPE html> <html> <kepala> <title>Kemas kini pangkalan data Mysql dengan memuat naik fail CSV menggunakan PHP</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <link rel="stylesheet" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <badan> <br /> <div class="container"> <h2 align="center">Kemas kini pangkalan data Mysql dengan memuat naik fail CSV menggunakan PHP</a></h2> <br /> <form method="post" enctype='multipart/form-data'> <p><label>Sila pilih fail (format CSV sahaja)</label> <jenis input = nama “fail” = “fail_produk”/></p> <br /> <jenis input = “serahkan” nama = “muat naik” kelas = “btn btn-info” nilai = “muat naik”/> </form> <br /> <?php echo $message ?> <h3 align="center">Kelahiran</h3> <br /> <div class="table-responsive"> <table class="table table-bordered table-striped"> <tr> <th>Tarikh</th> <th>Lahir</th> </tr> <?php while($row = mysqli_fetch_array($result)) { bergema ' <tr> <td>'.$row ["tarikh"].'</td> <td>'.$row ["kelahiran"].'</td> </tr> '; } ?> </table> </div> </div> </badan> </html></pre></p>
P粉529581199
P粉529581199

membalas semua(1)
P粉817354783

Pertama, anda perlu membaca dan membuang baris pengepala dalam CSV. Kemudian, menggunakan pertanyaan yang sesuai, disediakan dan berparameter, anda boleh mengemas kini pangkalan data dengan betul. Memandangkan tarikh dalam fail .csv berada dalam format yang betul, tiada tindakan diperlukan, tetapi ini mungkin tidak berlaku dengan fail CSV lain dan selalunya tarikh perlu diformat semula sebelum ia boleh disimpan dengan betul ke dalam jadual.

<?php
//index.php
$connect = mysqli_connect("localhost", "root", "1234", "ml_database");
$message = '';

if(isset($_POST["upload"])) {
    if($_FILES['product_file']['name']) {
        $filename = explode(".", $_FILES['product_file']['name']);

        if(end($filename) == "csv") {
            $handle = fopen($_FILES['product_file']['tmp_name'], "r");
            // 讀取并忽略標題行
            $data = fgetcsv($handle, 1000, ",");

            // 準備查詢一次
            $query = "UPDATE my_table 
                            SET date = ?, 
                                births = ?
                          WHERE data_id = ?";
            $stmt = $connect->prepare($query);

            // 循環(huán)遍歷csv剩余的行
            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                $stmt->bind_param('sss', $data[0],$data[1],$data[2]);
                $stmt->execute();
            }
            fclose($handle);
            header("location: index.php?updation=1");
            exit;   // 重定向后一定要使用exit
        } else {
            $message = '';
        }
    } else {
        $message = '';
    }
}

Nota: Saya menganggap kesemua 3 lajur adalah daripada jenis teks.

$stmt->bind_param('sss', $data[0],$data[1],$data[2]);
                   ^^^

Jika date_id是整數(shù)類型,您可以將其更改為'ssi',盡管3個s biasanya berfungsi dengan baik juga.

Rujukan:

fgetcsv
mysqli_prepare
mysqli_bind_param

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan