php - 截断表中除第一个列之外的所有 MySQL 列

标签 php mysql sql

嘿伙计们,你们可以看到我有这个 PHP 脚本:

    <?php
    $databasehost = "localhost"; 
    $databasename = ""; 
    $databasetable = ""; 
    $databaseusername=""; 
    $databasepassword = ""; 
    $fieldseparator = ","; 
    $lineseparator = "\n";
    $enclosedbyquote = '"';
    $csvfile = "file.csv";

    if(!file_exists($csvfile)) {
        die("File not found. Make sure you specified the correct path.");
    }

    try {
        $pdo = new PDO("mysql:host=$databasehost;dbname=$databasename", 
            $databaseusername, $databasepassword,
            array(
                PDO::MYSQL_ATTR_LOCAL_INFILE => true,
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
            )
        );
    } catch (PDOException $e) {
        die("database connection failed: ".$e->getMessage());
    }

    $pdo->exec("TRUNCATE TABLE `$databasetable`");

        $affectedRows = $pdo->exec("
        LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." REPLACE INTO TABLE `$databasetable`
        FIELDS OPTIONALLY ENCLOSED BY ".$pdo->quote($enclosedbyquote)."
         TERMINATED BY ".$pdo->quote($fieldseparator)." 
        LINES TERMINATED BY ".$pdo->quote($lineseparator)." 
        IGNORE 1 LINES");

    echo "Loaded a total of $affectedRows records from this csv file.\n";

    ?>

现在您可以看到,这是将 csv 文件导入到我的数据库中并截断整个 SQL 表。

我的问题是如何阻止表的第一列受到导入的影响?我将使用第一列作为 ID,知道如何做到这一点吗?

谢谢

最佳答案

简单。而不是:

TRUNCATE TABLE `$databasetable`

用途:

UPDATE `$databasetable` SET colB = '', colC = '', colD = '', colE = '';

其中 colA 是您要保留的列。如果您使用 NULL 字段,请更改为:

    UPDATE `$databasetable` SET colB = NULL; #etc.

关于php - 截断表中除第一个列之外的所有 MySQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954400/

相关文章:

php - 获取等于给定 id laravel Eloquent 所有记录

php - MySQL-PHP : Display Results In Table Rows (5 results per row)

mysql - 如何知道命令行MySQL数据库导入是否崩溃?

php - mysql数据库查询失败

sql - 为什么我的 SQL 'NOT IN' 子句产生与 'NOT EXISTS' 不同的结果

mysql - 我如何在mysql中使用左连接

sql - SSIS 中的别名参数

javascript - select col2 from TABLE 其中 col1 值是从多个选择下拉列表中选择的

PHP 自动将数据插入数据库的烦恼

php - 使用 cakephp 输出标签?