gpt4 book ai didi

mysql - 如何在 SQL 中追加而不是替换 INSERT 值

转载 作者:行者123 更新时间:2023-11-28 23:12:55 25 4
gpt4 key购买 nike

我有一个包含数据的文本文件。它每行包含 3 列数据,每列用逗号分隔。我正在尝试从该文件创建一个数据库,但只有最后一行正在保存。

示例文件:

Something,More,7
Another,Thing,9
One,Extra,3

脚本:

<?php
$myFile = file('data.txt');

foreach ($myFile as $row){
list($a,$b,$c) = explode(',', $row);
$insertStmt = "INSERT INTO `MYTABLE` (`id`, `a`, `b`, `c`)" . PHP_EOL
. " VALUES (NULL, '$a', '$b', $c);";
}
?>

当我'SELECT * FROM `MYTABLE`;' 时,只显示最后提交的值(One Extra 3)。我希望它将所有数据值保存在行中。我看到有关使用 SELECT * FROMINSERT INTO 的组合来附加数据的文档,但我不明白它,它似乎将一个预先存在的表附加到一个新的。我只想用新值更新当前表。

如何将新数据附加到现有表而不是替换它?

最佳答案

您的脚本在文件中循环,并在每个循环中重新定义变量 $insertStmt。这会适得其反,您需要将其附加到每个循环中。像这样的东西会更好。

<?php
$myFile = file('data.txt');
$insertStmt = "";
$i = 0;


foreach ($myFile as $row) {
list($a,$b,$c) = explode(',', $row);

if( $i == 0 )
$insertStmt = $insertStmt . "INSERT INTO `MYTABLE` (`id`, `a`, `b`, `c`) VALUES ";
else
$insertStmt = $insertStmt . "(NULL, '$a', '$b', $c),";

$i++;
}

$insertStmt = rtrim($insertStmt, ",");
$insertStmt = $insertStmt . ";"
?>

关于mysql - 如何在 SQL 中追加而不是替换 INSERT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com