Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将CSV插入MySQL_Php_Mysql_Csv - Fatal编程技术网

Php 将CSV插入MySQL

Php 将CSV插入MySQL,php,mysql,csv,Php,Mysql,Csv,我想在MySQL中插入一个CSV。如果MySQL表中存在列sha1,我如何才能更新我的表?如果列sha1存在,请插入它 我要插入csv的代码: while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){ if($i>0) { $sha1 = $csvdata[0]; $vsdt = $csvdata[1]; $trendx = $csvdata[2]; $note

我想在MySQL中插入一个CSV。如果MySQL表中存在列
sha1
,我如何才能更新我的表?如果列
sha1
存在,请插入它

我要插入csv的代码:

while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
    if($i>0) {
        $sha1 = $csvdata[0];
        $vsdt = $csvdata[1];
        $trendx  = $csvdata[2];
        $notes  = $csvdata[3];

        $sql = "INSERT INTO jeremy_table_trend (date_sourced,sha1,vsdt,trendx,notes) VALUES ('$date','$sha1','$vsdt','$trendx','$notes')";
        $query = mysqli_query($con , $sql);

        $c = $c+1;
        error_reporting(E_ALL ^ E_NOTICE);
    }
    $i++;
    error_reporting(E_ALL ^ E_NOTICE);
}

检查一下这个,这可能对你有帮助

<?php
while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
    if($i>0) {
        $sha1 = $csvdata[0];
        $vsdt = $csvdata[1];
        $trendx  = $csvdata[2];
        $notes  = $csvdata[3];

        // Get record where sha1 
        $check_sha = "SELECT sha1 FROM jeremy_table_trend WHERE sha1='".$sha1."'";
        $check_shaquery = mysqli_query($con , $check_sha);
        if($check_shaquery){
            $sha_count = mysqli_num_rows($check_shaquery);
        }

        // Check if sha1 already in database
        if(isset($sha_count) && $sha_count>0){
            $sql = "UPDATE `jeremy_table_trend` SET `date_sourced`='".$date."',`sha1`='".$sha1."',`vsdt`='".$vsdt."',`trendx`='".$trendx."',`notes`='".$notes."' WHERE sha1='".$sha1."'";
            $query = mysqli_query($con , $sql);
        }else{
            $sql = "INSERT INTO jeremy_table_trend (date_sourced,sha1,vsdt,trendx,notes) VALUES ('$date','$sha1','$vsdt','$trendx','$notes')";
            $query = mysqli_query($con , $sql);
        }

        $c = $c+1;
        error_reporting(E_ALL ^ E_NOTICE);
    }
    $i++;
    error_reporting(E_ALL ^ E_NOTICE);
}
?>

检查此项,这可能会对您有所帮助

<?php
while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
    if($i>0) {
        $sha1 = $csvdata[0];
        $vsdt = $csvdata[1];
        $trendx  = $csvdata[2];
        $notes  = $csvdata[3];

        // Get record where sha1 
        $check_sha = "SELECT sha1 FROM jeremy_table_trend WHERE sha1='".$sha1."'";
        $check_shaquery = mysqli_query($con , $check_sha);
        if($check_shaquery){
            $sha_count = mysqli_num_rows($check_shaquery);
        }

        // Check if sha1 already in database
        if(isset($sha_count) && $sha_count>0){
            $sql = "UPDATE `jeremy_table_trend` SET `date_sourced`='".$date."',`sha1`='".$sha1."',`vsdt`='".$vsdt."',`trendx`='".$trendx."',`notes`='".$notes."' WHERE sha1='".$sha1."'";
            $query = mysqli_query($con , $sql);
        }else{
            $sql = "INSERT INTO jeremy_table_trend (date_sourced,sha1,vsdt,trendx,notes) VALUES ('$date','$sha1','$vsdt','$trendx','$notes')";
            $query = mysqli_query($con , $sql);
        }

        $c = $c+1;
        error_reporting(E_ALL ^ E_NOTICE);
    }
    $i++;
    error_reporting(E_ALL ^ E_NOTICE);
}
?>

请,这是2018年。不再需要过程性的低级代码。看一看类似于读取CSV并用于面向对象访问数据库的库

我假设列
sha1
有一个
UNIQUE
索引集?如果没有,它应该这样做。然后,您可以在一个简洁的SQL语句中使用以下语法执行此操作:


除了检查数据库中是否存在具有相同哈希值的条目外,还可以使用ORM层为您解决这个问题

请,这是2018年。不再需要过程性的低级代码。看一看类似于读取CSV并用于面向对象访问数据库的库

我假设列
sha1
有一个
UNIQUE
索引集?如果没有,它应该这样做。然后,您可以在一个简洁的SQL语句中使用以下语法执行此操作:


除了检查数据库中是否存在具有相同哈希值的条目外,还可以使用ORM层为您解决这个问题

不使用参数格式化SQL,使用准备好的语句并传入参数,这将确保正确转义和格式化参数。不使用参数格式化SQL,使用准备好的语句并传入参数,这将负责正确转义和格式化参数。请注意,此代码容易出现SQL注入和非常糟糕的编码样式。请注意,此代码容易出现SQL注入和非常糟糕的编码样式。错误消息是什么?您是否在列“sha1”上设置了唯一索引?它需要有索引才能使查询工作。错误消息是什么?您是否在列“sha1”上设置了唯一索引?它需要有索引才能进行查询。