私はロードデータinfileクエリを使用してMySQLテーブルにデータを挿入しようとしています。アップロード用のテキストファイルを受け入れ、処理しようとするHTMLフォームがあります。私は、ファイルをアップロードするとフォームアップロードからファイルにデータをロード
ファイル
00|Oakleaf Forest|Norfolk|VA|United States|PC
01|Igo|Lowell|MA|United States|PC
02|Mint|Lawrence|MA|United States|PC
03|Hosa|Boston|MA|United States|PC
HTML
<p>Please upload file below:</p>
<form action="process.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" accept="text/plain">
<input type="submit">
</form>
PHP
/* processFile
* Process the submitted file
*
* @param Array - file for processing
*/
function processFile($file) {
// Get global variable
global $DB;
// file contents
$file_contents = $file["tmp_name"];
$SQL_statement = "LOAD DATA INFILE '$file_contents' INTO TABLE organization FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n' IGNORE 2 LINES
(ein, legal_name, city_name, state_name, country_name, description);";
// Run SQL query
$DB->execute($SQL_statement);
}
、何もテーブルに挿入されていません。
私は次のクエリを返す、echo($SQL_statement);
とデバッグを試してみた:
LOAD DATA INFILE '/Applications/XAMPP/xamppfiles/temp/phpOtL2q1' INTO TABLE organization FIELDS TERMINATED BY '|' LINES TERMINATED BY ' ' IGNORE 2 LINES (ein, legal_name, city_name, state_name, country_name, description);
は、私がここで何をしないのですか?
pdo/mysqliはデフォルトでブール値falseを返しますが、失敗した場合はチェックしません。 DB呼び出しで成功することは決してありません。常に失敗とみなし、失敗をチェックし、成功を楽しい驚きとして扱います。 –