2010-12-02 12 views
0

私が書いた以下のスクリプトは、フィールドエントリをデータベースに挿入したり、挿入コードをエコーアウトしたりしません。エラーは表示されません。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; 
+1

なぜ人々は[SQLクエリに入るエスケープ文字列]ではないのですか(http://php.net/manual/en/function.mysql-real-escape-string.php)? [SQLインジェクション](http://en.wikipedia.org/wiki/SQL_injection)!!ブーイング!! – cambraca

+0

cambraca:SQLセキュリティのベストプラクティスを提案する興味深いリンクがありますか? – serialk

+0

私は最終的なコードでエスケープする、私はちょうどすべてを最初に働かせようとしている。これは単なるテストテーブルです。 – acctman

答えて

0

は、スクリプトの先頭にこれを追加なぜそれが私だけを挿入するか、教えてくれませんこの:

$res = mysql_query(...); 
echo "mysql_query result: " . var_dump($res) . "\n"; 

レポートバック。

+0

print_r($ data)にエラーがなければ、すべてのcsvデータが完全に出力されます。ので、挿入SQL部分をスキップします。私はSQLの挿入IDのための$ word_idをエコーし​​ようと何も戻って来た – acctman

+0

そして、それは "mysql_queryの結果の後に何を言う:"? – dkamins

+0

空白の画面はありません。また、error_logにもエラーはありません。テーブル名の綴りが間違っていても、それが何かを拾うかどうかは分かりません。だからそれは私にそれがそれに到達する前にクエリが終了してもそれを信じさせません。 – acctman

関連する問題