PHP スクリプトを機能させるのに少し問題があります。
私が達成しようとしていること: サブページで、MySQL データベースへの非常に単純な CSV ファイルのアップロードが必要です。以前のソリューションに応じて、テーブルを DROP または TRUNCATE し、この CSV ファイル内の一部のデータを CREATE または INSERT INTO する必要があります。
私の問題は何ですか: 私は PHP と MySQL の初心者であり、スクリプトが機能しない理由を理解するのに苦労しています。
私のコード:
PHP:
$connect = mysql_connect("host","user","pass");
mysql_select_db("database",$connect); //select the table
if ($_FILES[csv][size] > 0) {
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
mysql_query ("
CREATE TABLE IF NOT EXISTS `database`.`table` (
`item_number` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_danish_ci NOT NULL ,
`item_desq` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_danish_ci NOT NULL ,
`item_img_path` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_danish_ci NULL ,
`item_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
PRIMARY KEY ( `item_id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_danish_ci
");
do {
if ($data[0]) {
mysql_query("
INSERT INTO strand_items1 (item_number, item_desq, item_img_path)
VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."
)
");
}
} while ($data = fgetcsv($handle,1000,";","\""));
header('Location: import_old.php?success=1'); die;
}
HTML:
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
Choose your file: <br />
<input name="csv" type="file" id="csv" />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
CSV: CSV の通常の行は次のようになります
"13371337";"Some description of the item";"NULL";
そして今、結果:これから、「成功した」フローが得られますが、テーブルにはデータがありません。推測できることから、空のエントリの量が増加するため、データベースである種の無限ループが発生します。テーブル内の item_id のみが自動インクリメントされます。これを修正する簡単な方法はありますか?
これは私の最初の質問です。すべての要件を満たしていることを願っています。(私の初心者を指摘するために、質問は最初にmeta.stackoverflow.comに投稿されました;))そうでない場合は、しばらくお待ちください-この質問を注意深く監視し、返信と要求に迅速に回答します。
前もって感謝します :)