私はcsvをアップロードしてMYSQL DBにインポートするために以下のスクリプトを作成しました。これは私の動作テストでしたが、うまくいきました。 2番目の例では、インポートするにはすべてのフィールドを追加しましたが、現在は何もエラーが発生していないので、何もインポートしようとしなくても、そのまま次のページに印刷されます:phpコードで見つからないバグ:-(
EDIT >> >>>>>
INSERT IGNOREメッセージを以下のような使用可能なエラーメッセージにする方法はありますか?現時点では、実際には何らかのエラーを表示する代わりに挿入コマンドをエコーしますか? 。
Import Successful : name
- INSERT IGNORE hqfjt_chronoforms_data_addupdatelead (salutation, leadname, business, address, town, county, postcode, phone, email, gasoiluser, dervuser, kerouser, annualconsgasoil, annualconsderv, annualconskero, gasoilmargin, dervmargin, keromargin, fueldetails, lubesdetails, otherdetails, sentletterday, sentlettermonth, sentletteryear, sentpostcardday, sentpostcardmonth, sentpostcardyear, sentquoteday, sentquotemonth, sentquoteyear, lastvisitedday, lastvisitedmonth, lastvisitedyear, receivegasoilmailinglist, receivedervmailinglist, receivekeromailinglist, gasoilmailinglist, dervmailinglist, keromailinglist, mailtype, createdby) VALUES ('salutation','name','business name','address','town','county','postcode','phone','email','gasoil user','derv user','kero user','annual consumption gas oil','annual consumption derv','annual consumption kero','gas oil margin','derv margin','kero margin','fuel details','lubes details','other details','sent letter day','sent letter month','sent letter year','sent postcard day','sent postcard month','sent postcard year','sent quote day','sent quote month','sent quote year','last visited day','last visited month','last visited year','mailtype','receive gasoil mailing list frequency','receive derv mailing list frequency','receivekero mailing list frequency','gasoil mailing list','derv mailinglist','kero mailinglist')
これは私がアップロードおよびインポート機能が正常に動作していたことを確認するために使用私の最初のテストコードだった:
<?php
//database connect info here
//check for file upload
if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){
//upload directory
$upload_dir = "./csv";
//create file name
$file_path = $upload_dir . $_FILES['csv_file']['name'];
//move uploaded file to upload dir
if (!move_uploaded_file($_FILES['csv_file']['tmp_name'], $file_path)) {
//error moving upload file
echo "Error moving file upload";
}
//open the csv file for reading
$handle = fopen($file_path, 'r');
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
//Access field data in $data array ex.
$leadname = $data[0];
$postcode = $data[1];
$phone = $data[2];
echo 'Import Successful : ';
echo $leadname;
echo '<br/>';
//Use data to insert into db
$sql = sprintf("INSERT IGNORE hqfjt_chronoforms_data_addupdatelead (leadname, postcode, phone) VALUES ('%s','%s','%s')",
mysql_real_escape_string($leadname),
mysql_real_escape_string($postcode),
mysql_real_escape_string($phone)
);
mysql_query($sql) or (mysql_query("ROLLBACK") and die(mysql_error() . " - $sql"));
}
//delete csv file
unlink($file_path);
}
?>
私は、今.......に行って、すべてのフィールドを追加しました何らかの理由でインポートしていないため、ページの上部にメッセージを印刷しているだけです。私はおそらくどこかで何かを逃したことは知っていますが、私の人生のためにそれを見つけることはできません。
<?php
//database connect info here
//check for file upload
if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){
//upload directory
$upload_dir = "./csv";
//create file name
$file_path = $upload_dir . $_FILES['csv_file']['name'];
//move uploaded file to upload dir
if (!move_uploaded_file($_FILES['csv_file']['tmp_name'], $file_path)) {
//error moving upload file
echo "Error moving file upload";
}
//open the csv file for reading
$handle = fopen($file_path, 'r');
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
//Access field data in $data array ex.
$salutation = $data[0];
$leadname = $data[1];
$business = $data[2];
$address = $data[3];
$town = $data[4];
$county = $data[5];
$postcode = $data[6];
$phone = $data[7];
$email = $data[8];
$gasoiluser = $data[9];
$dervuser = $data[10];
$kerouser = $data[11];
$annualconsgasoil = $data[12];
$annualconsderv = $data[13];
$annualconskero = $data[14];
$gasoilmargin = $data[15];
$dervmargin = $data[16];
$keromargin = $data[17];
$fueldetails = $data[18];
$lubesdetails = $data[19];
$otherdetails = $data[20];
$sentletterday = $data[21];
$sentlettermonth = $data[22];
$sentletteryear = $data[23];
$sentpostcardday = $data[24];
$sentpostcardmonth = $data[25];
$sentpostcardyear = $data[26];
$sentquoteday = $data[27];
$sentquotemonth = $data[28];
$sentquoteyear = $data[29];
$lastvisitedday = $data[30];
$lastvisitedmonth = $data[31];
$lastvisitedyear = $data[32];
$receivegasoilmailinglist = $data[33];
$receivedervmailinglist = $data[34];
$receivekeromailinglist = $data[35];
$gasoilmailinglist = $data[36];
$dervmailinglist = $data[37];
$keromailinglist = $data[38];
$mailtype = $data[39];
$createdby = $data[40];
echo 'Import Successful : ';
echo $leadname;
echo '<br/>';
//Use data to insert into db
$sql = sprintf("INSERT IGNORE hqfjt_chronoforms_data_addupdatelead (salutation, leadname, business, address, town, county, postcode, phone, email, gasoiluser, dervuser, kerouser, annualconsgasoil, annualconsderv, annualconskero, gasoilmargin, dervmargin, keromargin, fueldetails, lubesdetails, otherdetails, sentletterday, sentlettermonth, sentletteryear, sentpostcardday, sentpostcardmonth, sentpostcardyear, sentquoteday, sentquotemonth, sentquoteyear, lastvisitedday, lastvisitedmonth, lastvisitedyear, receivegasoilmailinglist, receivedervmailinglist, receivekeromailinglist, gasoilmailinglist, dervmailinglist, keromailinglist, mailtype, createdby) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",
mysql_real_escape_string($salutation),
mysql_real_escape_string($leadname),
mysql_real_escape_string($business),
mysql_real_escape_string($address),
mysql_real_escape_string($town),
mysql_real_escape_string($county),
mysql_real_escape_string($postcode),
mysql_real_escape_string($phone),
mysql_real_escape_string($email),
mysql_real_escape_string($gasoiluser),
mysql_real_escape_string($dervuser),
mysql_real_escape_string($kerouser),
mysql_real_escape_string($annualconsgasoil),
mysql_real_escape_string($annualconsderv),
mysql_real_escape_string($annualconskero),
mysql_real_escape_string($gasoilmargin),
mysql_real_escape_string($dervmargin),
mysql_real_escape_string($keromargin),
mysql_real_escape_string($fueldetails),
mysql_real_escape_string($lubesdetails),
mysql_real_escape_string($otherdetails),
mysql_real_escape_string($sentletterday),
mysql_real_escape_string($sentlettermonth),
mysql_real_escape_string($sentletteryear),
mysql_real_escape_string($sentpostcardday),
mysql_real_escape_string($sentpostcardmonth),
mysql_real_escape_string($sentpostcardyear),
mysql_real_escape_string($sentquoteday),
mysql_real_escape_string($sentquotemonth),
mysql_real_escape_string($sentquoteyear),
mysql_real_escape_string($lastvisitedday),
mysql_real_escape_string($lastvisitedmonth),
mysql_real_escape_string($lastvisitedyear),
mysql_real_escape_string($mailtype),
mysql_real_escape_string($receivegasoilmailinglist),
mysql_real_escape_string($receivedervmailinglist),
mysql_real_escape_string($receivekeromailinglist),
mysql_real_escape_string($gasoilmailinglist),
mysql_real_escape_string($dervmailinglist),
mysql_real_escape_string($keromailinglist),
mysql_real_escape_string($createdby)
);
mysql_query($sql) or (mysql_query("ROLLBACK") and die(mysql_error() . " - $sql"));
}
//delete csv file
unlink($file_path);
}
?>
ようこそスタックオーバーフローに! SOは、「デバッグ・マイ・コード」サイトではありません。あなたが探しているものなら、おそらく専門家を雇って、あなたのためにやってみるべきでしょう。問題に取り組んでいる*特定の*技術的な質問がある場合は、それに応じて質問を自由に編集してください。おそらくあなたがする必要があるのは、ステップバイステップのデバッグです。 –
申し訳ありません、私はちょうど私が長い間コーディングしていないので、私の誤植のどこかに間違った構文を使用しています。 – user1148760
ええ、私は理解しています。しかし、この大量のコードで間違いを見つけ出すのは本当に難しいことです。おそらくデバッグはやり方です。心配しないで、それは正常です - 私達は何度もそれを経験しています:) –