「日付列」が更新できない問題の解決方法: MySQL データベースのテーブル更新時に CSV ファイルを正しくアップロードする方法
P粉529581199
P粉529581199 2023-08-28 13:46:51
0
1
552
<p>私のコードの主な問題は、php を使用して csv ファイルから mysql データベース テーブルに「日付」を更新できないことです。コード行 $date = mysqli_real_escape_string($connect, $data[1]); がここでの主な問題です。この特定のコード行に対する代替クエリを探しています。 </p> <p>これは CSV ファイルです: https://drive.google.com/file/d/1EdMKo-XH7VOXS5HqUh8-m0uWfomcYL5T/view?usp=sharing</p> <p>これは完全なコードです: </p> <pre class="brush:php;toolbar:false;"><?php //index.php $connect = mysqli_connect("localhost","root","1234","ml_database"); $メッセージ = ''; if(isset($_POST["アップロード"])){ if($_FILES['製品ファイル']['名前']){ $ファイル名 =explode(".”,$ _FILES ['製品ファイル'] ['名前']); if(end($ファイル名)==“csv”){ $handle = fopen($ _FILES ['製品ファイル'] ['tmp_name'],“r”); while($ データ = fgetcsv($ ハンドル)){ $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 ="UPDATE my_table SET 日付 ='$ 日付'、 出生 ='$ 出生'、 WHERE data_id ='$ data_id'”; mysqli_query($接続,$クエリ); } fclose($ハンドル); ヘッダー(「場所:index.php?更新 = 1”); } それ以外 { $message ='<label class="text-danger">CSV ファイルのみを選択してください</label>'; } } それ以外 { $message ='<label class="text-danger">ファイルを選択してください</label>'; } } if(isset($_GET["アップデート"])){ $message ='<label class="text-success">製品の更新が完了しました</label>'; } $query = "SELECT * FROM my_table"; $result = mysqli_query($connect, $query); ?> <!DOCTYPE html> <html> <頭> <title>PHP を使用して CSV ファイルをアップロードして MySQL データベースを更新します</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <本体> <br /> <div class="コンテナ"> <h2 align="center">PHP を使用して CSV ファイルをアップロードして MySQL データベースを更新します</a></h2> <br /> <form method="post" enctype='multipart/form-data'> <p><label>ファイルを選択してください(CSV形式のみ)</label> <入力タイプ = "ファイル" 名前 = "製品ファイル"/><</p> <br /> <入力タイプ = "送信" 名前 = "アップロード" クラス = "btn btn-info" 値 = "アップロード"/> </フォーム> <br /> <?php echo $message; ?> <h3 align="center">誕生</h3> <br /> <div class="テーブルレスポンシブ"> <テーブルクラス="テーブル テーブルボーダー テーブルストライプ"> <tr> 日付 誕生 </tr> <?php while($row = mysqli_fetch_array($result)) { エコー ' <tr> <td>'.$row ["日付"].'</td> <td>'.$row ["誕生"].'</td> </tr> '; } ?> </テーブル> </div> </div> </ボディ> </html></pre></p>
P粉529581199
P粉529581199

全員に返信(1)
P粉817354783

まず、CSV のヘッダー行を読み取って破棄する必要があります。その後、適切に準備され、パラメーター化されたクエリを使用して、データベースを正しく更新できます。 .csv ファイル内の日付は正しい形式であるため、何もする必要はありませんが、他の CSV ファイルには当てはまらない場合があり、多くの場合、日付をテーブルに正しく保存するには、日付を再フォーマットする必要があります。

リーリー

注: 3 つの列はすべてテキスト型であると仮定します。

リーリー

date_id が整数型の場合は、'ssi' に変更できますが、通常は 3 s でも問題ありません。

######参照:######

fgetcsv

mysqli_prepare
mysqli_bind_param

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート