dongxian3852 2015-11-14 15:04
浏览 31

PHP不从CSV中将记录插入MySQL表中哪个内容特殊字符

i am inserting record into mysql table from CSV but php code skip all those enteries which content " ' " in CSV file. its working fine with normal data working fine with , Jams Bond , but skipping this data : jam's bond

function readCSV($csvFile)
{
    $file_handle = fopen($csvFile, 'r');
    while (!feof($file_handle) ) 
    {
        $line_of_text[] = fgetcsv($file_handle, 1024);
        fclose($file_handle);
    }

    $csvFile = $target_file;
    $csv = readCSV($target_file);
    for($i=0;$i<sizeof($csv);$i++)
    {                                       
        if($i>=0)
        {
            if($csv[$i][3]!='')
            {
                $dd=date('Y-m-d H:i:s', strtotime($csv[$i][2]));
                mysqli_query($conn123,"insert into call_detail_record (date, caller_id_from,extension, caller_id_to, duration, cost, destination, cost_rate, cost_centre) values('".$dd."','".$csv[$i][3]."','".$csv[$i][4]."','".$csv[$i][5]."','".$csv[$i][6]."','".$csv[$i][7]."','".$csv[$i][8]."','".$csv[$i][10]."','".$csv[$i][11]."')");    
            }
        }
        if($i==(sizeof($csv)-1))
        {
        ?>
            <div class="form-group">
            <label><font color="#009933">File Uploaded Successfully...</font></label>
            </div>
            <?php
            unlink($target_file);   
        }
    }   
  • 写回答

1条回答 默认 最新

  • dqnk57224 2015-11-14 15:14
    关注

    Change your code to escape the quotes

    $dd=date('Y-m-d H:i:s', strtotime($csv[$i][2]));
    
    /* escaping */
    $csv[$i][3] = mysqli_real_escape_string($conn123, $csv[$i][3]);
    $csv[$i][4] = mysqli_real_escape_string($conn123, $csv[$i][4]);
    $csv[$i][5] = mysqli_real_escape_string($conn123, $csv[$i][5]);
    $csv[$i][6] = mysqli_real_escape_string($conn123, $csv[$i][6]);
    $csv[$i][7] = mysqli_real_escape_string($conn123, $csv[$i][7]);
    $csv[$i][8] = mysqli_real_escape_string($conn123, $csv[$i][8]);
    $csv[$i][10] = mysqli_real_escape_string($conn123, $csv[$i][10]);
    $csv[$i][11] = mysqli_real_escape_string($conn123, $csv[$i][11]);
    
    mysqli_query($conn123,"insert into call_detail_record 
    (date, caller_id_from, extension, caller_id_to, 
     duration, cost, destination, cost_rate, cost_centre)
    values ('".$dd."','".$csv[$i][3]."','".$csv[$i][4]."','".$csv[$i][5]. "','".
    $csv[$i][6]."','".$csv[$i][7]."','".$csv[$i][8]."','".
    $csv[$i][10]."','".$csv[$i][11]."')");
    

    Same for querying...

    $mysearch = = mysqli_real_escape_string($conn123, "andrew's");
    
    mysqli_query($conn123,"SELECT * from call_detail_record WHERE 
                           caller_id_from ='" . $mysearch . "'");
    
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效