繁体   English   中英

PHP不将记录从CSV插入MySQL表中,其中包含特殊字符

[英]PHP Not Inserting Records Into MySQL Table From CSV Which Content Special Character

我正在从CSV将记录插入到mysql表中,但是php代码跳过了所有在CSV文件中包含“”内容的输入项。 其正常数据正常工作,与Jams Bond正常工作,但跳过此数据: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);   
        }
    }   

更改代码以免引号

$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]."')");

与查询相同...

$mysearch = = mysqli_real_escape_string($conn123, "andrew's");

mysqli_query($conn123,"SELECT * from call_detail_record WHERE 
                       caller_id_from ='" . $mysearch . "'");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM