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

Comment résoudre le problème de l'impossibilité de mettre à jour la "Colonne de date"?: Comment télécharger correctement un fichier CSV lors de la mise à jour d'une table de base de données MySQL
P粉529581199
P粉529581199 2023-08-28 13:46:51
0
1
649
<p>Le principal problème dans mon code est que je ne peux pas mettre à jour la "date" du fichier csv dans la table de la base de données mysql à l'aide de php. La ligne de code $date = mysqli_real_escape_string($connect, $data[1]); est le principal problème ici. Je recherche une requête alternative pour cette ligne de code particulière. </p> <p>Voici le fichier csv?: https://drive.google.com/file/d/1EdMKo-XH7VOXS5HqUh8-m0uWfomcYL5T/view?usp=sharing</p> <p>Voici le code complet?: </p> <pre class="brush:php;toolbar:false;"><?php //index.php $connect = mysqli_connect("localhost","root","1234","ml_database"); $message =''; if(isset($_POST["upload"])){ si($_FILES['product_file']['name']){ $filename = exploser(".”,$ _FILES ['fichier_produit'] ['nom']); if(end($ filename)==“csv”){ $handle = fopen($ _FILES ['product_file'] ['tmp_name'],“r”); while($ data = fgetcsv($ handle)){ $data_id = mysqli_real_escape_string($ connect,$ data [0]); $date = mysqli_real_escape_string($ connect,$ data [1]); //我的問題 $births = mysqli_real_escape_string($ connect,$ data [2]); $query = ? METTRE à JOUR ma_table DéFINIR la date = '$ date', naissances ='$ naissances', Où data_id ='$ data_id'"; mysqli_query($connect,$requête); } fclose($ handle); en-tête(?emplacement:index.php?mise à jour = 1"); } autre { $message ='<label class="text-danger">Veuillez sélectionner uniquement les fichiers CSV</label>'; } } autre { $message ='<label class="text-danger">Veuillez sélectionner le fichier</label>'; } } if(isset($_GET["mise à jour"])){ $message ='<label class="text-success">Mise à jour du produit terminée</label>'; } $query = "SELECT * FROM ma_table"; $result = mysqli_query($connect, $query); ?> <!DOCTYPE html> <html> <tête> <title>Mettez à jour la base de données Mysql en téléchargeant un fichier CSV à l'aide de 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> ≪/tête> <corps> <br /> <div class="conteneur"> <h2 align="center">Mettez à jour la base de données Mysql en téléchargeant un fichier CSV à l'aide de PHP</a></h2> <br /> <form method="post" enctype='multipart/form-data'> <p><label>Veuillez sélectionner un fichier (format CSV uniquement)</label> <type d'entrée = nom "fichier" = "fichier_produit"/></p> <br /> <type d'entrée = ? soumettre ? nom = ? télécharger ? classe = ? btn btn-info ? valeur = ? télécharger ?/> </formulaire> <br /> <?php echo $message?> <h3 align="center">Naissances</h3> <br /> <div class="table-responsive"> <table class="table table bordée table-rayée"> <tr> <th>Date</th> <th>Naissance</th> ≪/tr> <?php while($row = mysqli_fetch_array($result)) { écho ' <tr> <td>'.$row ["date"].'</td> <td>'.$row ["naissances"].'</td> ≪/tr> '; } ?> </tableau> </div> </div> </corps> </html></pre></p>
P粉529581199
P粉529581199

répondre à tous(1)
P粉817354783

Tout d’abord, vous devez lire et supprimer la ligne d’en-tête dans le CSV. Ensuite, à l’aide de requêtes appropriées, préparées et paramétrées, vous pouvez mettre à jour correctement la base de données. étant donné que les dates du fichier .csv sont au format correct, aucune action n'est requise, mais cela peut ne pas être le cas avec d'autres fichiers CSV, où les dates doivent souvent être reformatées avant de pouvoir être stockées correctement dans le tableau.

<?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");
            // 讀取并忽略標(biāo)題行
            $data = fgetcsv($handle, 1000, ",");

            // 準(zhǔn)備查詢一次
            $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 = '';
    }
}

Remarque?: je suppose que les 3 colonnes sont de type texte.

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

Ifdate_id是整數(shù)類型,您可以將其更改為'ssi',盡管3個sfonctionne généralement bien aussi.

Référence :

fgetcsv
mysqli_prepare
mysqli_bind_param

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal