私が書いた以下のスクリプトは、フィールドエントリをデータベースに挿入したり、挿入コードをエコーアウトしたりしません。エラーは表示されません。print_r($ data)は、ファイル内のcsvエントリを表示します。mysqlが情報を挿入していません
mysql_query(...);
へ:
error_reporting(E_ALL);
はまた、このようなものです、あなたの行を変更します。それは文句を言わない
$handle = fopen($uploadcsv, 'r');
$column_headers = array();
$row_count = 0;
$batchid = '0000';
while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
if ($row_count==0){
$column_headers = $data;
} else {
if(file_exists('/home/domain/public_html/temp/files/'. $data[0] .'.doc')) {
echo "running";
$importword="INSERT into load_test(word, type, category, language, batch_id)
values('$data[2]', '$data[3]', 'Class', '$data[4]', '$batchid')";
mysql_query($importword); //or die(mysql_error());
echo mysql_error();
$word_id = mysql_insert_id($importword);
$importwav="INSERT into names(com_id,rec_date,rec_time,rec_type,rec_request,rec_by,batch_id)
values('$importword', '.date(d-M-y).', '.date('h:i:s a').', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$batchid')";
mysql_query($importwav); //or die(mysql_error());
echo mysql_error();
if(!is_dir("/home/domain/public_html/audio_rec/" . date(Y) . "/" . date(m) . "/" . $word_id)) {
mkdir("/home/domain/public_html/audio_rec/" . date(Y) . "/" . date(m) . "/" . $word_id, 0755, true);
}
rename($uploaddir . $data[0] .'.doc', $audiodir . date(Y) . '/' . date(m) . '/' . $word_id . '/' . $data[0] . '.doc');
}
print_r($data);
}
++$row_count;
なぜ人々は[SQLクエリに入るエスケープ文字列]ではないのですか(http://php.net/manual/en/function.mysql-real-escape-string.php)? [SQLインジェクション](http://en.wikipedia.org/wiki/SQL_injection)!!ブーイング!! – cambraca
cambraca:SQLセキュリティのベストプラクティスを提案する興味深いリンクがありますか? – serialk
私は最終的なコードでエスケープする、私はちょうどすべてを最初に働かせようとしている。これは単なるテストテーブルです。 – acctman